炒股神器!Python实时爬取A股所有股票的数据

一、爬取目标

炒股神器!Python实时爬取A股所有股票的数据

二、完整源码

#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#
# Copyright (c) 2024 愤怒的it, All Rights Reserved.
# FileName : code.py
# Date : 2024.01.18
# Author : 愤怒的it
# Version : 1.0.0
# Node : 欢迎关注微信公众号【愤怒的it男】
#
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

import csv
import json
import requests
from prettytable import PrettyTable

def getData(baseUrl, headers):
    response = requests.get(url=baseUrl, headers=headers)
    data = json.loads(response.text)['data']['diff']
    result = []
    for key, value in data.items():
        value['f2'] = '%.2f' % (value['f2']/100)
        value['f3'] = '%.2f' % (value['f3']/100) + '%'
        value['f4'] = '%.2f' % (value['f4']/100)
        value['f5'] = '%.2f' % (value['f5']/10000) + ''
        value['f6'] = '%.2f' % (value['f6']/100000000) + '亿'
        value['f7'] = '%.2f' % (value['f7']/100) + '%'
        value['f15'] = '%.2f' % (value['f15']/100)
        value['f16'] = '%.2f' % (value['f16']/100)
        value['f17'] = '%.2f' % (value['f17']/100)
        value['f18'] = '%.2f' % (value['f18']/100)
        value['f10'] = '%.2f' % (value['f10']/100)
        value['f8'] = '%.2f' % (value['f8']/100) + '%'
        value['f9'] = '%.2f' % (value['f9']/100)
        value['f23'] = '%.2f' % (value['f23']/100)
        result.append([key,value['f12'],value['f14'],value['f2'],value['f3'],value['f4'],value['f5'],value['f6'],value['f7'],value['f15'],value['f16'],value['f17'],value['f18'],value['f10'],value['f8'],value['f9'],value['f23']])
    return result

def printData(result):
    table = PrettyTable()
    table.field_names = ["序号""代码""名称""最新价""涨跌幅""涨跌额""成交量()""成交额""振幅""最高""最低""今开""昨收""量比""换手率""市盈率(动态)""市净率"]
    table.add_rows(result)
    print(table)

def saveData(result):
    with open('A股股票数据.csv''w', encoding='utf-8', newline=''as file:
        writer = csv.writer(file)
        writer.writerows(result)

def main():
    baseUrl = 'https://22.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=6000&po=1&fid=f3&fs=m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23,m:0+t:81+s:2048'
    headers = {'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    result = getData(baseUrl, headers)
    printData(result)
    saveData(result)
    
if __name__== "__main__" :
    main()

三、源码简析

由于原始的请求数据为整数,需要转化为保留两位的小数才是最终正确的数字,因此可以通过'%.2f' % num进行保留两位小数的转换操作,转换后为字符串类型。

for key, value in data.items():
        value['f2'] = '%.2f' % (value['f2']/100)
        value['f3'] = '%.2f' % (value['f3']/100) + '%'
        value['f4'] = '%.2f' % (value['f4']/100)
        value['f5'] = '%.2f' % (value['f5']/10000) + ''
        value['f6'] = '%.2f' % (value['f6']/100000000) + '亿'
        value['f7'] = '%.2f' % (value['f7']/100) + '%'
        value['f15'] = '%.2f' % (value['f15']/100)
        value['f16'] = '%.2f' % (value['f16']/100)
        value['f17'] = '%.2f' % (value['f17']/100)
        value['f18'] = '%.2f' % (value['f18']/100)
        value['f10'] = '%.2f' % (value['f10']/100)
        value['f8'] = '%.2f' % (value['f8']/100) + '%'
        value['f9'] = '%.2f' % (value['f9']/100)
        value['f23'] = '%.2f' % (value['f23']/100)

四、爬取结果

+------+--------+-------------+---------+---------+--------+------------+---------+--------+---------+---------+---------+---------+---------+--------+----------------+---------+
| 序号 | 代码 | 名称 | 最新价 | 涨跌幅 | 涨跌额 | 成交量() | 成交额 | 振幅 | 最高 | 最低 | 今开 | 昨收 | 量比 | 换手率 | 市盈率(动态) | 市净率 |
+------+--------+-------------+---------+---------+--------+------------+---------+--------+---------+---------+---------+---------+---------+--------+----------------+---------+
|  0   | 837403 | N康农 |  17.97  |  60.45% |  6.77  |  13.61 |  2.58亿25.89% |  20.79  |  17.89  |  19.62  |  11.20  | 5487.59 | 63.86% |     89.23      |   2.70  |
|  1   | 601033 | N永兴 |  22.21  |  37.10% |  6.01  |  91.6820.79亿16.11% |  24.52  |  21.91  |  22.29  |  16.20  |   0.00  | 63.01% |     22.61      |   1.98  |
|  2   | 839167 | 同享科技 |  27.43  |  30.00% |  6.33  |  14.54 |  3.61亿32.46% |  27.43  |  20.58  |  20.79  |  21.10  |   2.17  | 22.34% |     27.66      |   5.62  |
|  3   | 870726 | 鸿智科技 |  23.47  |  29.96% |  5.41  |   3.63 |  0.79亿29.62% |  23.47  |  18.12  |  18.12  |  18.06  |   3.15  | 37.63% |     29.45      |   4.10  |
|  4   | 835207 | 众诚科技 |  12.49  |  23.54% |  2.38  |  11.48 |  1.36亿33.93% |  13.14  |   9.71  |  10.19  |  10.11  |   2.32  | 32.59% | -165.23     |   3.49  |
|  5   | 300081 | 恒信东方 |   9.71  |  20.02% |  1.62  |  110.0610.03亿16.69% |   9.71  |   8.36  |   8.60  |   8.09  |   3.38  | 21.72% | -43.88     |   3.38  |
|  6   | 837821 | 则成电子 |  18.79  |  18.55% |  2.94  |   6.03 |  1.05亿30.16% |  19.81  |  15.03  |  15.84  |  15.85  |   1.98  | 33.01% |     52.85      |   2.67  |
|  7   | 832876 | 慧为智能 |  16.50  |  17.35% |  2.44  |   6.99 |  1.04亿21.91% |  16.58  |  13.50  |  14.10  |  14.06  |   1.30  | 32.90% |     97.53      |   4.17  |
|  8   | 301205 | 联特科技 |  102.50 |  17.06% | 14.94  |  12.2211.62亿20.47% |  103.50 |  85.58  |  86.24  |  87.56  |   3.82  | 17.98% |     465.90     |   9.39  |
|  9   | 873132 | 泰鹏智能 |  21.94  |  15.35% |  2.92  |   5.78 |  1.21亿22.92% |  22.50  |  18.14  |  18.78  |  19.02  |   1.60  | 50.72% |     28.96      |   6.11  |
|  10  | 834770 | 艾能聚 |  10.86  |  14.20% |  1.35  |  17.84 |  1.85亿19.24% |  11.28  |   9.45  |   9.47  |   9.51  |   1.57  | 27.10% |     19.30      |   2.56  |
|  11  | 300624 | 万兴科技 |  94.40  |  13.19% | 11.00  |  19.5417.50亿21.53% |  98.99  |  81.03  |  81.99  |  83.40  |   2.71  | 16.24% |     149.83     |   9.61  |
|  12  | 836699 | 海达尔 |  16.45  |  13.06% |  1.90  |   2.71 |  0.44亿22.13% |  17.38  |  14.16  |  14.55  |  14.55  |   2.40  | 21.46% |     23.59      |   3.12  |
|  13  | 871245 | 威博液压 |  13.51  |  13.05% |  1.56  |   2.10 |  0.28亿25.10% |  14.62  |  11.62  |  11.85  |  11.95  |   4.42  | 9.25% |     29.75      |   2.06  |
|  14  | 871753 | 天纺标 |  21.44  |  12.25% |  2.34  |  13.44 |  2.82亿25.60% |  22.99  |  18.10  |  18.60  |  19.10  |   2.37  | 62.97% |     51.31      |   4.33  |
|  15  | 838701 | 豪声电子 |  14.50  |  11.97% |  1.55  |   5.36 |  0.73亿18.38% |  14.78  |  12.40  |  12.95  |  12.95  |   1.28  | 27.34% |     45.79      |   2.64  |
|  16  | 832110 | 雷特科技 |  20.35  |  11.81% |  2.15  |   1.53 |  0.29亿13.96% |  20.35  |  17.81  |  17.81  |  18.20  |   2.43  | 12.73% |     24.34      |   2.37  |
|  17  | 872351 | 华光源海 |   9.23  |  11.20% |  0.93  |  11.20 |  0.99亿18.07% |   9.60  |   8.10  |   8.25  |   8.30  |   2.15  | 29.19% |     24.33      |   1.94  |
|  18  | 836270 | 天铭科技 |  17.60  |  11.11% |  1.76  |   6.27 |  1.06亿21.59% |  18.20  |  14.78  |  15.00  |  15.84  |   3.77  | 28.21% |     24.34      |   3.87  |
|  19  | 300308 | 中际旭创 |  109.83 |  10.92% | 10.81  |  37.1038.50亿13.25% |  109.95 |  96.83  |  97.04  |  99.02  |   2.27  | 4.95% |     51.03      |   6.50  |
|  20  | 838227 | 美登科技 |  28.89  |  10.82% |  2.82  |   2.28 |  0.61亿27.92% |  29.58  |  22.30  |  25.50  |  26.07  |   2.67  | 21.60% |     26.07      |   2.82  |

炒股神器!Python实时爬取A股所有股票的数据

炒股神器!Python实时爬取A股所有股票的数据

五、免责声明

本公众号所有源码均为个人学习所编写,仅可用于计算机技术学习及研究等合法行为,禁止利用本公众号的源码从事任何违反本国(地区)法律法规的业务,如有发现存在违法违规行为我会举报到网监部门。

原文始发于微信公众号(愤怒的it男):炒股神器!Python实时爬取A股所有股票的数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/234409.html

(0)
葫芦侠五楼的头像葫芦侠五楼

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!