大家好,我是皮皮。
1.前言前几天,我在Python最强王交流群里问了一个Python网络爬虫问题【哎哟,是豆子~】。让我们来看看。问题描述:
各位,这个13位数字怎么构造呢?我找不到图案。我尝试在第一页的URL 中添加数字,但没有成功。
1. 网站链接:http://quote.eastmoney.com/center/gridlist.html#fund_etf
2、需求:获取ETF基金数据(代码和名称两列)
3、带有“push”字样的链接存储的是ETF基金数据(两列数据,代码和名称),但该链接有两个变化的数据,一个是页码,另一个是最后13位。带有单词“push”的链接示例:http://85 .pusp.eastmoney.com/api/qt/clist/get cb=jQuery1124030358799609457776_1703062450956pn=1pz=20po=1np=1ut=bd1d9ddb04089700cf9c27f6f74262 81fltt=2invt=2 wbp2u=|0|0|0| webfid=f3fs=b:MK0021,b:MK0022,b:MK0023,b:MK0024字段=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f 21、 f23,f24,f25,f22,f11,f62,f128,f136,f115,f152_=1703062450958
2. 实施过程这里[吴朝建]给出了指导:
这里她给出了自己的代码,从指定的URL(可用)获取数据,如下:
导入请求,jsonimport pandas as pdheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0'}url='http://89.pusp.eastmoney.com /api/qt/clist/get cb=jQuery112406545446716331029_1703061927055pn=3pz=20po=1np=1ut=bd1d9ddb04089700cf9c27f6f7426281fltt=2invt=2wbp2u=|0|0|0 |webfid=f3fs=b:MK0021、b:MK0022、b:MK0023、b:MK0024字段=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).texttable=resp.replace('jQuery112406545446716331029_1703061927055(','').replace(')','').replace(' ;','')dict_data=json.loads(table)df=pd.json_normalize(data=dict_data['data']['diff'])df[['f12','f14']] 但抓取更多页面数据(不成功),代码如下:
number=[]i=0n=44j=1703054636319while i n: j +=5 number.append(j) i +=1df_all=[]for i,j in zip (range(1,45),number): url=f 'http://85.pusp.eastmoney.com/api/qt/clist/get cb=jQuery1124030358799609457776_1703062450956pn={i}pz=20po=1np=1ut=bd1d9ddb04089700cf9c27f6f7426281flt t=2invt=2wbp2u=|0|0|0|webfid=f3fs=b:MK0021 , b:MK0022,b:MK0023,b:MK0024字段=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】指出:你觉得很复杂。豆子想要的数据都在第一页给出了。
代码运行后结果如下:
url='http://55.pusp.eastmoney.com/api/qt/clist/get cb=jQuery112402201018241113597_1703065790029pn=1pz=20po=1np=1ut=bd1d9ddb04089700cf9c27f6f7426281fl tt=2invt=2wbp2u=|0|0|0|webfid=f3fs=b:MK0021, b:MK0022 ,b:MK0023,b:MK0024字段=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', '用户代理': 'Mozilla/5.0 (Windows NT 10.0 ; Win64;=headers, proxies=proxies) 成功解决了粉丝的问题。
文章最后给大家分享一个Python网络爬虫数据采集工具。
报名官网报名地址:https://get.brightdata.com/wxdtkgpzhtj8,即可报名。
之后会有邮件验证,您自行验证即可完成注册。
注册完成后,会有相应的欢迎说明,如下图:
您可以在下面看到数据集和网络爬虫IDE。
还有官网提供的一些知名网站数据集,大家可以自己使用。
示例数据:
量数据还提供Web端IDE工具和相关示例代码。您可以直接使用模板和相应的代码!您还可以根据自己的需求定制自己的爬虫并创建代码。
输入相关规则后,就可以在线运行代码了:
无论你是需要大规模采集数据、突破网站封锁,还是管理你的爬虫代理网络,我个人发现亮数据的质量都非常好。现在使用我的链接获得免费试用。点击阅读原文。尝试一下!
三、总结大家好,我是皮皮。本文主要盘点一个Pandas数据处理问题。针对这个问题,文章提供了具体的分析和代码实现,帮助粉丝成功解决问题。
最后感谢粉丝【哎哟,是豆子啦~】提出问题,【猫药师凯莉】和【吴朝建】出谋划策,感谢【莫怒】、【円马蠠成】等人参与学习和交流。
【问题补充】温馨提醒,大家在群里提问时。可以注意以下几点:如果涉及到大文件数据,可以对数据进行脱敏,发一些demo数据(小文件的意思),然后贴一些代码(可以复制的那种),记得发截图错误(完整屏幕截图))。如果代码不多,直接发送代码文本即可。如果代码超过50行,只需发送.py文件。