Red de conocimiento de divisas - Conocimiento de préstamos - ¿Cómo extraer mediante programación datos en tiempo real de software de stock gratuito?

¿Cómo extraer mediante programación datos en tiempo real de software de stock gratuito?

Si escribe su propio programa, una forma es obtener datos de una fuente de información proporcionada, como un servicio web. Otro método es conectarse a páginas web que brindan información instantánea.

El código de muestra es el siguiente:

Creado el jueves 23 de julio de 2007 09:17:27 2015

@Autor: jet

"""

DAY_PRICE_COLS = ['fecha','abrir','alto','cerrar','bajo','volumen',

'cambiar' ,' chg','ma5','ma10','ma20',

vma5','vma10','vma20','facturación']

DAY_PRICE_URL = 'SAPI .finance.s/s/?code=s&' tipo=último'

INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']

INDEX_LIST = {'SH':'SH 000001','SZ':'sz399001','HS300':'sz399300',

'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}

INDEX_DAY_PRICE_COLS= ['fecha','apertura','alta','cerrada','baja', 'volumen',

'chg','chg','ma5','ma10','ma20',

vma5','vma10','vma20' ]

K_TYPE_KEY = ['D', 'W', 'M']

K_TYPE_MIN_KEY = ['5', '15', '30', '60']

K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}

MIN_PRICE_URL = ' SAPI s/AK MIN?scode=s amp. type=s

PAGE_TYPE={'','ifeng':'ifeng.com'}

URL_ERROR_MSG='Error al obtener, verifique el estado de la red o el puerto API ¡La URL no coincide! '

Get_history_data.py

# -*-Encoding: utf-8 -*-

"""

Creado el jueves , 23 de julio de 2007 09:15:40 2015

@author:jet

"""

Importar constantes como tipos de contacto

Importar pandas como pd

Importar json

Importar urlopen desde urllib2, solicitud

def get_hist_data(código = Ninguno, inicio = Ninguno, fin = Ninguno, ktype = 'D '):

"""

Función:

Obtener datos históricos de transacciones de acciones individuales

-

Entrada:

-

Código: Cadena

Código de stock, por ejemplo: 601989.

Inicio: Cadena

Formato de fecha de inicio: cuando AAAA-MM-DD está vacío, toma los datos de fecha más antiguos proporcionados por la API.

Fin: cadena

Formato de fecha de finalización: Cuando AAAA-MM-DD está vacío, se toman los datos del último día de negociación.

Ktype: cadena (predeterminado=D, la función se unifica automáticamente a mayúsculas)

Tipo de datos D=K-línea diaria, W=K-línea semanal, M=K mensual -línea, 5= 5 minutos, 15=15 minutos.

30=30 minutos, 60=60 minutos

Salida:

-

Marco de datos

Fecha Fecha

Precio de apertura

Precio más alto

Precio de cierre

Precio más bajo

Fluctuación de cambio

P_chg sube y baja

Precio promedio de cinco días de Ma5

Precio promedio de 10 días de Ma10

Precio promedio de 20 días de Ma20

VMA5 promedio de 5 días

Vma10 promedio de días

Vma20 promedio de 20 días

Tasa de rotación (el índice no tiene este ítem)

"""

código = código _ a _ código API(código . superior())

ktype = ktype.upper()

url = ' '

url = get_url(ktype, código)

Imprimir(url)

js = json.loads(ping_API(url))

cols = []

if len(js[' record '][0])== 14:

cols = ct_index_day_price_column

En caso contrario:

cols = ct. columnas de precios diarios

df = pd.(js['record'], columns=cols)

si ktype en ct:

df = df . aplicar map(lambda x: x . replace(u ', ', u ' '))

Para en la columna Columna[1: ]:

df[col]=df[col]. astype(float)

Si el inicio no es Ninguno:

df = df[df . gt;=start]

Si el final no es Ninguno:

df = df[df .date lt;=end]

df = df.set_index( 'fecha')

Devuelve df

def code_to_APIcode (código):

"""

Función:

Verifique si el código de stock ingresado es correcto. Si es correcto, devuelva el código de stock utilizado por la API.

"""

Imprimir (código)

El código if en ct. INDEX_KEY:

Devolver ct.

INDEX _ LIST [código]

En caso contrario:

if len(código)! = 6:

Elevar IOError('¡Error de entrada de código!')

De lo contrario:

Si el código[:1] está en ['5',' 6 '] else 'szs'code, luego devuelve 'shs'code

def get_url(ktype, code):

"""

Función:

Verifique si el tipo de línea k de entrada es correcto. Si es correcto, devuelva la URL.

"""

Si el tipo k en ct. K_TYPE_KEY:

url = ct. URL del precio diario. PAGE_TYPE['http'],ct. PAGE_DOMAIN['ifeng'],

ct. K_TYPE[ktype], código)

URL de retorno

elif ktype en el tipo de contacto. K_TYPE_MIN_KEY:

url = ct. URL de precio más bajo. PAGE_TYPE['http'],ct. PAGE_DOMAIN['ifeng'],

código,ktype)

url de retorno

de lo contrario:

raise IOError('ktype error de entrada ! ')

Definir ping_API(url):

"""

Función:

Enviar solicitud de datos a la API, si el enlace Si es normal, devuelva datos

"""

text = ' '

Pruebe:

req = request (url)

texto = urlopen(req, tiempo de espera=10). read()

if len(text) lt;15:

raise IOError('¡Sin datos!')

La excepción es e:

Imprimir(e)

De lo contrario:

Devolver texto

#Test Portal

imprimir(obtener _ hist _ datos ( ' 601989 ', ' 2015-07-11 ', ' 2015-07-22 '))

上篇: La primera victoria de la temporada de Dalian 下篇: ¿Qué quieres decir con colorido y hermoso?
Artículos populares