接口分析
爬数据需要先思考从哪里爬?经过一番搜索,发现天天基金网的数据既比较全,又十分容易爬取,所以就从它入手了。
这个网站提供的数据不是常见的json格式,但由于这个是js文件,因此,有一个更合适的方法——利用了PyExecJs模块就能很方便地编译解析js代码啦。
Chrome的开发者调试模式下,选择Network,然后刷新一下,很快我们就能发现我们想要的东西了,找到了所有基金列表的接口。
接口信息
http://fund.eastmoney.com/js/fundcode_search.js
便可以直接获取到所有的基金代码,基金简拼,基金名称,基金类型,基金全拼,以后通过基金代码可以遍历爬取所有基金的数据,具体以后再演示了。
代码
from typing import List, Any, Union
import requests
import execjs
url = 'http://fund.eastmoney.com/js/fundcode_search.js'
content = requests.get(url)
jsContent = execjs.compile(content.text)
rawData = jsContent.eval('r')
allInfo: list[Union[list[str], Any]] = [["基金代码","基金简拼","基金名称","基金类型","基金全拼"]]
for code in rawData:
allInfo.append(code)
for i in range(len(allInfo)):
for j in range(len(allInfo[i])):
print(allInfo[i][j], end='\t')
print()