代码拉取完成,页面将自动刷新
# Author: 高强 Qiang Gao (mutecamel@gmail.com)
import json
import datetime
from pathlib import Path
import requests
import pandas as pd
# 东方财富网的行情接口网址
url = "http://40.push2.eastmoney.com/api/qt/clist/get"
# 请求板块代码 - 沪深A股
fs = "m:0+t:6,m:0+t:80,m:1+t:2,m:1+t:23"
# 请求字段代码
fields = {
"f2": "最新价(元)", # /100 -> 元
"f3": "涨跌幅(%)", # /100 -> %
"f4": "涨跌额(元)", # /100 -> 元
"f5": "成交量(手)", # 手
"f6": "成交额(元)", # 元
"f7": "振幅(%)", # /100 -> %
"f8": "换手率(%)", # /100 -> %
"f9": "动态市盈率(倍)", # /100 -> 倍
"f10": "量比(倍)", # /100 -> 倍
"f12": "证券代码",
"f13": "市场代码",
"f14": "证券简称",
"f15": "最高价(元)", # /100 -> 元
"f16": "最低价(元)", # /100 -> 元
"f17": "开盘价(元)", # /100 -> 元
"f18": "昨收盘价(元)", # /100 -> 元
"f20": "总市值(元)", # 元
"f21": "流通市值(元)", # 元
"f23": "市净率(倍)", # /100 -> 倍
"f24": "涨跌幅最近60日(%)", # /100 -> %
"f25": "涨跌幅年初至今(%)", # /100 -> %
}
# 为请求行情数据准备参数
params = {
"fs": fs,
"fields": ",".join(fields),
"pn": 1, # 请求起始页码
"pz": 10_000, # 请求每页条目数
}
dt = datetime.datetime.now() # 发送请求的时间
resp = requests.get(url, params=params) # 发送请求,获取响应
data = json.loads(resp.text) # 将响应文本转换为内置数据结构
df = pd.DataFrame(data["data"]["diff"].values())
for col in "f2 f3 f4 f7 f8 f9 f10 f15 f16 f17 f18 f23 f24 f25".split():
df[col] /= 100
df = df.rename(columns=fields)
df.to_excel(f"data/eastmoney-hq-{dt:%Y%m%d}-{dt:%H%M%S}.xlsx", index=False)
Path("done").write_text(str(dt))
print("Job done.")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。