网址:平安银行(000001)资金流向 _ 数据中心 _ 东方财富网、
爬取内容:
工具:jupyter notebook
所需要的包:
import requests ##获取网页
from bs4 import BeautifulSoup
import pprint
import json
import pandas as pd
from lxml import etree ##解析文档
import re
首先在原网页上进入开发者模式,点击网络后ctrl+r重新载入,会发现,该网站的数据采用的jQuery编码,因此我们可以找到一个含有所有表格数据的url:
?
?
?
所以获取源代码:
url=f'http://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get?cb=jQuery112309173939785847636_1634476786717&lmt=0&klt=101&fields1=f1%2Cf2%2Cf3%2Cf7&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58%2Cf59%2Cf60%2Cf61%2Cf62%2Cf63%2Cf64%2Cf65&ut=b2884a393a59ad64002292a3e90d46a5&secid=0.000001&_=1634476786718'
data=requests.get(url)#获取网页源代码
data.encoding='utf-8'
str1=str(data.text)
再将内容转化为字典,提取字典中的'klines',将数据转换为list
dict1=eval(str1[42:-2])#转化为字典
dict2=dict1['data']['klines']
list1=list(dict1['data']['klines'])#提取字典中的'klines',将数据转换为list
print(dict2[1])
split=re.split('[,]',dict2[1])
print(split)
将数据切片,将例如2021-05-19,-5004505.0,-37477279.0,42481776.0,67939072.0,-72943577.0,-0.49,-3.67,4.15,6.64,-7.13,23.60,-1.26的数据按逗号分开,从而直接转为列表
i=0
list1=[]
for i in range(len(dict2)):
i=1+i
split=re.split('[,]',dict2[i])
list1.append(split)
print(list1) #数据切片,将例如2021-05-19,-5004505.0,-37477279.0,42481776.0,67939072.0,-72943577.0,-0.49,-3.67,4.15,6.64,-7.13,23.60,-1.26的数据按逗号分开,从而直接转为列表
输出为excel:
df1=pd.DataFrame(list1)
df1.columns=['日期','主力净流入-净额','小单净流入-净额','中单净流入-净额','大单净流入-净额','超大单净流入-净额','主力净流入-净占比','小单净流入-净占比','中单净流入-净占比','大单净流入-净占比','超大单净流入-净占比','收盘价','涨跌幅','0','0']
print(df1)
df1.to_excel('C:\\Users\\hanyun\\Desktop\\d.xlsx')
|