Python爬虫技术教程

一、确定爬虫目标
在东方财富网站的“行情中心”—-“沪深京个股”选项卡下,有当前所有A股的实时数据:

二、获取URL

然后按一下键盘的F12进入开发者模式,再依次点击Network、JS这两个选项卡,然后点击左下角的第一个链接:
这次我们点击Response选项卡,查看URL返回给我们的信息:
可以看到,在返回结果中有许多的f开头的标题。通过与网页数据的对比可以发现:
假设我们只获取这几列数据外加股票代码f12和股票名称f14,我们可以把其他的f开头的标题都删除,将原始的Request URL过滤成如下的形式:

三、编写爬虫代码
下面给出利用过滤后的URL编写的爬虫代码:
from urllib.request import urlopen
import pandas as pd
import json
pd.set_option(‘display.min_rows’, 1000) # 最少显示数据的行数
pd.set_option(‘display.max_rows’, 5000) # 最多显示数据的行数
pd.set_option(‘expand_frame_repr’, False) # 当列太多时不换行
pd.set_option(‘display.unicode.ambiguous_as_wide’, True) # 字符对齐
pd.set_option(‘display.unicode.east_asian_width’, True) # 字符对齐
# 过滤后的URL
url = ‘https://80.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112409723198935668804_1705759153487&pn=1&pz=10000&po=1&’ \
‘np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&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&fields=f12,f14,f15,f16,f17,f2,f6′
# 爬取数据
data = urlopen(url=url).read()
data = data.decode(‘utf-8’)
# 清洗数据,转化为json格式
data = data.strip()
data = data.split(‘;’)[0]
data = data.split(‘(‘)[1]
data = data.split(‘)’)[0]
data = json.loads(data)
# 将json格式转化为dataframe格式
data = data[‘data’][‘diff’]
data = list(data)
data = pd.DataFrame(data)
# 整理data,对column进行重命名
cols = {‘f12’: ‘code’, ‘f14’: ‘股票名称’,‘f2’: ‘收盘价’, ‘f15’: ‘最高价’, ‘f16’: ‘最低价’, ‘f17’: ‘开盘价’, ‘f6’:‘成交额’}
data.rename(columns=cols, inplace=True)
data.sort_values(by=[‘code’], ascending=True, inplace=True)
data[‘code’] = data[‘code’].astype(‘str’)
data.reset_index(drop=True, inplace=True)
print(data)
# 保存数据
data.to_csv(‘A股实时数据.csv’, encoding=‘gbk’, index=True)
上面就是完整的爬虫代码了,最终我们抓取到的当天收盘后A股实时数据显示如下:
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/102064
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!