如何利用python挑选基金?

01/06 11:58
阅读数 197

前几天有位朋友向我求助,想让我写个爬虫帮他爬取基金的数据。乐于助人的我怎么会袖手旁观呢?首先捋一捋思路:获取网页→获取一条数据→获取全部数据→把数据保存为文件有了思路就开干喽~朋友需要获取的数据来源于天天基金网的基金排行页,先来观察一下它的结构。每一个基金都在一行,翻页可获取下一页基金。

图片


获取数据

先试试能不能用requests库直接获取数据吧。

图片


emmm。。。看来是编码不对,改一下编码试试。在浏览器按F12查看一下网页是什么编码的。

图片


图片


换一个编码后就好了。接下来获取一条数据,观察一下网页的代码,基金的代码在a标签里,这次使用xpath来获取数据。(不会使用xpath的小伙伴可以戳这里

图片


图片


嗯?怎么会没有数据呢?代码应该没错的鸭QAQ。。。在多次尝试仍然没有获取到数据后只好去求助小哥哥了。。。

小哥哥说这可能是网页使用ajax技术来获取数据的,网页本来只是个框架,所以requests获取的网页没有数据。在网上查阅资料后,我终于弄懂是怎么回事了。网页就是一个框架,每次获取数据后(例如翻页)就把数据更新到预定的地方(红色框部分),这样就不用重新加载网页。

图片


小哥哥教我在浏览器按F12后再按网页的翻页按钮,就能看到请求的网址,用requests库就能获取数据了。

图片



图片

无访问权限。。。看来被识别到是爬虫了,加个请求头试试。

图片


数据获取到了,用eval()加正则表达式把数据提取出来。

图片


获取全部数据

接下来写个循环获取全部数据。根据观察,pi这个参数就是页数,使用字符串格式化的方法即可获取全部数据

图片


图片


把数据保存为文件

数据都获取到了,最后就是把它们保存到文件里,这里选择保存为csv格式。

图片


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部