千金一刻莫空度,老大无成空自伤。这篇文章主要讲述# yyds干货盘点 # 手把手教你使用Python网络爬虫获取基金信息相关的知识,希望能为你提供帮助。
大家好,我是python进阶者。
一、前言
前几天有个粉丝找我获取基金信息,这里拿出来分享一下,感兴趣的小伙伴们,也可以积极尝试。
文章图片
二、数据获取
这里我们的目标网站是某基金官网,需要抓取的数据如下图所示。
文章图片
可以看到上图中基金代码那一列,有不同的数字,随机点击一个,可以进入到基金详情页,链接也非常有规律,以基金代码作为标志的。
其实这个网站倒是不难,数据什么的,都没有加密,网页上的信息,在源码中都可以直接看到。
文章图片
这样就降低了抓取难度了。通过浏览器抓包的方法,可以看到具体的请求参数,而且可以看到请求参数中只有?
?pi?
?在变化,而这个值恰好对应的是页面,直接构造请求参数就可以了。文章图片
代码实现过程
找到数据源之后,接下来就是代码实现了,一起来看看吧,这里给出部分关键代码。
获取股票id数据
response = requests.get(url, headers=headers, params=params, verify=False)
pattern = re.compile(r.*?"(?P< items> .*?)".*?, re.S)
result = re.finditer(pattern, response.text)
ids = []
for item in result:
# print(item.group(items))
gp_id = item.group(items).split(,)[0]
结果如下图所示:
文章图片
之后构造详情页链接,获取详情页的基金信息,关键代码如下:
response = requests.get(url, headers=headers)
response.encoding = response.apparent_encoding
selectors = etree.html(response.text)
danweijingzhi1 = selectors.xpath(//dl[@class="dataItem02"]/dd[1]/span[1]/text())[0]
danweijingzhi2 = selectors.xpath(//dl[@class="dataItem02"]/dd[1]/span[2]/text())[0]
leijijingzhi = selectors.xpath(//dl[@class="dataItem03"]/dd[1]/span/text())[0]
lst = selectors.xpath(//div[@class="infoOfFund"]/table//text())
结果如下图所示:
文章图片
将具体的信息做相应的字符串处理,然后保存到?
?csv?
?文件中,结果如下图所示:文章图片
有了这个,你可以做进一步的统计和数据分析了。
三、总结
大家好,我是Python进阶者。这篇文章主要分享了使用Python网络爬虫获取基金数据信息,这个项目不算太难,里边稍微有点小坑,欢迎大家积极尝试,如果有遇到问题,请添加我好友,我帮助解决。
这篇文章主要是以【股票型】的分类做了抓取,其他的类型,我就没做了,欢迎大家尝试,其实逻辑都是一样的,改下参数就可以了。
文章图片
最后需要本文代码的小伙伴们,可以添加我v获取!此外,方便大家学习Python,我还建立了一个Python高质量学习交流群,遇到Python问题都可以随便问,需要进来的小伙伴们,加我v,我拉你!
【# yyds干货盘点 # 手把手教你使用Python网络爬虫获取基金信息】小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何Python问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。
推荐阅读
- 都2022年了,HDFS为何还如此能战!
- 微服务世纪难题(如何拆分单体())
- 硬核 | Redis 布隆(Bloom Filter)过滤器原理与实战
- 再也不敢精通Java了——get/set篇
- 数据分析|pandas数据分析之数据清洗(上)
- 52-chmod
- Redis(开发与运维):05---Redis命令的5种返回值类型
- shell中变量的定义及其应用
- Shell 分析服务器日志命令集锦