前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盘点一个基金数据的Python网络爬虫案例

盘点一个基金数据的Python网络爬虫案例

作者头像
Python进阶者
发布2024-01-03 13:48:40
2070
发布2024-01-03 13:48:40
举报

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python网络爬虫问题,一起来看看吧。问题描述:

大佬们 这个13位数字怎么构造呀 找不到规律 试了在第一页的url基础上加数字也是不行

1、网站链接:http://quote.eastmoney.com/center/gridlist.html#fund_etf

2、需求:获取ETF基金数据(代码、名称这2列数据)

3、带push字眼的链接存放ETF基金数据(代码、名称这2列数据),但是链接有2个变动的数据,一个是页码,一个是最后的13位数字 带push字眼的链接样例:http://85.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124030358799609457776_1703062450956&pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=b:MK0021,b:MK0022,b:MK0023,b:MK0024&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1703062450958

二、实现过程

这里【吴超建】给了一个指导:

这里她给了自己的代码,指定url的数据获取(可获取),如下:

代码语言:javascript
复制

import requests,json
import pandas as pd

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0'}
url = 'http://89.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112406545446716331029_1703061927055&pn=3&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=b:MK0021,b:MK0022,b:MK0023,b:MK0024&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1703061927065'
resp = requests.get(url,headers = headers,timeout =10).text
table = resp.replace('jQuery112406545446716331029_1703061927055(','').replace(')','').replace(';','')
dict_data = json.loads(table)
df = pd.json_normalize(data = dict_data['data']['diff'])
df[['f12','f14']]

但是抓取多页的数据(不成功),代码如下:

代码语言:javascript
复制
number = []
i = 0
n = 44
j = 1703054636319
while i < n:
    j += 5
    number.append(j)
    i += 1
df_all = []
for i,j in zip (range(1,45),number):
    url = f'http://85.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124030358799609457776_1703062450956&pn={i}&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=b:MK0021,b:MK0022,b:MK0023,b:MK0024&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_={j}'
    resp = requests.get(url,headers = headers,timeout =10).text
    table = resp.replace('jQuery112404551488490763843_1703043849281(','').replace(')','').replace(';','')
    df = pd.json_normalize(data = dict_data['data']['diff'])
    df_1 = df[['f12','f14']]
    df_all.append(df_1)
all_table = pd.concat(df_all)

后来【猫药师Kelly】指出:你们想复杂了,豆子要的数据在第一页就全部给出了。

代码运行之后,结果如下:

代码语言:javascript
复制
url = "http://55.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112402201018241113597_1703065790029&pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=b:MK0021,b:MK0022,b:MK0023,b:MK0024&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1703065790075"

headers = {
    'Referer': 'http://quote.eastmoney.com/center/gridlist.html',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}

proxies = {'http': '','https': ''}

res = requests.get(url, headers=headers, proxies=proxies)

顺利地解决了粉丝的问题。

文章的最后,给大家分享一个Python网络爬虫数据采集利器。

注册 官网注册地址:https://get.brightdata.com/wxdtkgpzhtj8,注册即可用。

之后有个邮箱验证,自行验证一下即可完成注册。

注册完成后,会有对应的欢迎指引,如下图所示:

可以看到下图数据集和网络爬虫IDE。

这里还有一些官网给出的知名网站数据集,可以自行取用。

示例数据:

亮数据还提供了 web 端的 IDE 工具,并提供了相关的示例代码,你可以直接使用模板和对应的代码!也可以自己自定义爬虫,根据自己的需求创建代码。

输入相关的规则后,即可在线跑代码:

无论你是需要大规模收集数据,还是需要突破网站封锁,或者是需要管理你的爬虫代理网络,我亲测觉得亮数据的质量的确很不错,现在用我的连结有免费试用,点击阅读原文去试试吧!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Pandas数据处理问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【哎呦喂 是豆子~】提出的问题,感谢【猫药师Kelly】、【吴超建】给出的思路,感谢【莫生气】、【冫马讠成】等人参与学习交流。

------------------- End -------------------

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python爬虫与数据挖掘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现过程
  • 三、总结
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档