股票实时盘口数据获取-东方财富

该博客分享了一段Python代码,用于从东方财富网抓取股票实时盘口数据,以替代新浪数据接口,因为后者速度变慢且限制增多。代码实现了获取股票如平安银行的开盘价、最高价、最低价、最新价等关键信息,并展示了具体的数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新浪实时数据接口改了后,速度巨慢,限制很大。

故现在从东方财富网获取实时数据,速度还可以。

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests
import time
import json


def gupiaopankou_dfcf(daima):
    """
    从东方财富网获取股票盘口实时数据
    :param daima: 股票代码
    :return:  盘口数据
    """
    if daima[:2] == "sh":
        lsbl = '1.'+daima[2:]
    else:
        lsbl = '0.' + daima[2:]
    wangzhi = 'http://push2.eastmoney.com/api/qt/stock/get?&fltt=2&invt=2&fields=f120,f121,f122,f174,f175,f59,f163,f43,f57,' \
              'f58,f169,f170,f46,f44,f51,f168,f47,f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,' \
              'f138,f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,f105,f84,f85,f183,' \
              'f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,f110,f262,f263,f264,f267,f268,f255,f256,' \
              'f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,' \
              'f270,f271,f272,f273,f274,f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295&secid='+lsbl+ \
              '&_='+str(time.time())

    resp = requests.get(wangzhi, timeout=6)
    # print (resp) #打印请求结果的状态码
    data = json.loads(resp.text)['data']
    # print(data)
    pankou = {'代码': data['f57'], '名称': data['f58'], '开盘': data['f46'], '最高': data['f44'], '最低': data['f45'],
              '最新': data['f43'], '金额': data['f48'],
              '卖1价': data['f39'], '卖1量': data['f40'], '卖2价': data['f37'], '卖2量': data['f38'],
              '卖3价': data['f35'], '卖3量': data['f36'], '卖4价': data['f33'], '卖4量': data['f34'],
              '卖5价': data['f31'], '卖5量': data['f32'],
              '买1价': data['f19'], '买1量': data['f20'], '买2价': data['f17'], '买2量': data['f18'],
              '买3价': data['f15'], '买3量': data['f16'], '买4价': data['f13'], '买4量': data['f14'],
              '买5价': data['f11'], '买5量': data['f12']
              }
    print(pankou)
    return pankou


if __name__ == '__main__':
    while 1:
        gupiaopankou_dfcf('sz000001')
        time.sleep(1)

返回结果:

{'代码': '000001', '名称': '平安银行', '开盘': 16.5, '最高': 16.54, '最低': 16.25, '最新': 16.3, '金额': 1677261296.0, '卖1价': 16.31, '卖1量': 1930, '卖2价': 16.32, '卖2量': 1775, '卖3价': 16.33, '卖3量': 681, '卖4价': 16.34, '卖4量': 707, '卖5价': 16.35, '卖5量': 2056, '买1价': 16.3, '买1量': 2006, '买2价': 16.29, '买2量': 5348, '买3价': 16.28, '买3量': 8055, '买4价': 16.27, '买4量': 4411, '买5价': 16.26, '买5量': 7131}

程序化交易系统文档 : http://jinxin168.gitee.io/xcxh_bangzhu/

w:XCXH_JY

### 回答1: 在 TURBO C 2.0 中,您可以使用 biosdisk() 函数来格式化软盘。 下面是一段代码示例: ``` #include <stdio.h> #include <dos.h> int main() { // 定义扇区的大小 unsigned int sector_size[3] = {512, 512, 1024}; // 定义填充字节 unsigned char fill_char[3] = {0xF6, 0xF6, 0x48}; // 格式化磁道 70 面 0 的前三个扇区 for (int i = 0; i < 3; i++) { int result = biosdisk(2, 0, 70, 0, i + 1, 1, sector_size[i], fill_char[i]); if (result != 0) { printf("格式化扇区 %d 失败,返回码: %d\n", i + 1, result); } } return 0; } ``` 请注意,在使用 biosdisk() 函数之前,需要包含 dos.h 头文件。 希望这能帮到您! ### 回答2: 使用TURBO C 2.0语言,可以通过以下代码格式化软盘的70磁道0面,并分别格式化3个扇区,大小分别为512字节、512字节和1024字节。其中,前两个扇区使用F6填充,第三个扇区使用48填充。 ```c #include<stdlib.h> #include<stdio.h> #include<dos.h> void formatFloppyDisk(){ union REGS regs; regs.h.ah = 0x0;// To format a floppy disk, we set AH=0 regs.h.dl = 0;// Drive number (0=A, 1=B, etc.) regs.x.cx = 0;// Track number to format regs.h.dh = 0;// Head number regs.h.al = 0;// Sector size (0=default, 1=512 bytes, 2=1024 bytes, 3=2048 bytes etc.) int FILL_BYTE = 0;// The byte value to fill the sectors with during formatting int NUM_SECTORS = 3;// Number of sectors to format // To format 70th track 0th head regs.x.ax = 0x1301; // 0x13 = Reset disk system, 01H = Reset only specified drive int86(0x13, &regs, &regs); // BIOS interrupt to reset disk system for (int i=0; i<NUM_SECTORS; i++){ regs.x.ax = 0x3101; // 0x31 = Write Format, 01H = Format only current track regs.x.bx = 0x0001; // 0x00 = Drive A:, 01H = Head 1, 0 = Generate ID Field depending on the disk in the drive 1 = Keep the ID Field all zeros regs.x.cx = 0x0170; // Track number=70(0-79 range) regs.h.dh = 0x00; // Head number=0 or 1 regs.h.al = 0x02; // Control byte=always zero regs.x.dx = i+1; // Sector number starting from 1 regs.x.si = 0x0000; // segment and offset of read/write buffer regs.x.di = 0x0000; // segment and offset of result if(i == 2){ FILL_BYTE = 0x48; // Fill the third sector with 48 regs.x.ax = 0x3102; // 0x31 = Write Format, 02H = Format sequential tracks immediately following the one being formatted }else{ FILL_BYTE = 0xF6; // Fill the first two sectors with F6 } regs.h.ah = FILL_BYTE; // Fill the sector with specified byte int86(0x13, &regs, &regs); // BIOS interrupt to format the specified sector } } int main(){ formatFloppyDisk(); return 0; } ``` 上述代码使用了INT 0x13,即BIOS中断服务例程,来执行软盘格式化操作。通过设置寄存器的不同参数,可以指定要格式化的磁道、面、扇区大小和填充字节。在这个例子中,我们格式化了软盘70磁道0面的3个扇区,前两个扇区使用F6填充,第三个扇区使用48填充。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值