????????本次爬虫以东方财富网中某企业的资金流向为目标。
????????在爬虫前首先打开网页寻找到自己的目标网页。我随便挑选了一个企业,进入其资金流向的界面,检查查看源代码,找到需要提取的表格的区域代码。
? ? ? ? 我使用jupter notebook进行爬虫。
? ? ? ? 首先导包,以下是我的代码。
import re
import requests
from bs4 import BeautifulSoup
import pandas as pd
????????使用函数定义读取其中tbody部分并进行处理,想以此来得到数据。但发现直接使用无法得到tbody,在查阅资料后发现源代码并没有tbody,实际上并没有读取到。此时我选择再次回到页面查看代码。
? ? ? ? 由于资金流向是随着时间更新的,所以先在源代码界面进行部分处理。点开元素旁边的加号找到网络打开,使用CTRL+r进行刷新,找到资金流向对应的部分。
? ? ? ? ?打开表头得到对应的URL,即所爬目标的内容的网址,以此网址来进行处理。以下附上处理代码。
dict1=eval(str1[41:-2])#转化为字典
dict2=dict1['data']['klines']
list1=list(dict1['data']['klines'])#提取字典中的'klines',将数据转换为list
split=re.split('[,]',dict2[1])
print(split)
dict1=eval(str1[41:-2])#转化为字典
dict2=dict1['data']['klines']
list1=list(dict1['data']['klines'])#提取字典中的'klines',将数据转换为list
split=re.split('[,]',dict2[1])
print(split)
i=0
list1=[]
for i in range(len(dict2)):
i=1+i
split=re.split('[,]',dict2[i])
list1.append(split)
print(list1)
? ? ? ? 之后将数据整理成图表输出为表格即可。?
df1=pd.DataFrame(list1)
df1.columns=['日期','主力净流入-净额','小单净流入-净额','中单净流入-净额','大单净流入-净额','超大单净流入-净额','主力净流入-净占比','小单净流入-净占比','中单净流入-净占比','大单净流入-净占比','超大单净流入-净占比','收盘价','涨跌幅','0','0']
print(df1)
df1.to_excel('C:\\Users\\76813\\Desktop\\资金流向.xlsx')#输出到所需要的具体地址
|