
为获得美国篮球联赛NBA中的每个球员基本信息,所以我针对国内的nba篮球网站https://china.nba.cn/playerindex/,分析其网页结果,实现一个爬虫程序,对此网站上的NBA球员数据进行爬取并保存到本地的csv文件中。
目录
一、找数据源 爵士预测分析
二、分析存储结构
三、爬取数据
四、总结
首先进入我想要爬取的网页目录。
然后打开网页开发者工具,进入Network目录,并选择XHR,刷新网页之后,会出现playerlist.json这个文件,这个文件中包含了该网页中所以球员的数据。但是我第一次尝试发现XHR目录中找不到目标json,经过多次尝试,我发现当我开启vpn,使用代理IP访问网站时,就可以找到此json文件。
打开palyerlist.json文件,对其目录结构进行分析。
从json结构中可以看出,球员的基本信息在payload/players目录下,该目录下的playProfile中包含了每个球员的国家、名字、身高、体重等等信息。
首先实现了一个抓取json包的函数,通过构造一个HTTP请求头来模拟一个具有特定用户代理的浏览器请求对需要抓取的网站进行请求访问,然后使用库发起HTTP GET请求,从指定网页链接中获取数据,最后用json解析HTTP响应的文本内容。
getdata函数,根据第二步中对json文件结构的分析,构造列表和字典来,逐层对json中球员的各个特征进行提取并保存。
最后将提取的数据,用‘utf-8’中文的编码格式写入csv文件。
调用结果如下
此次爬虫实验使我可以更好运用网页开发者模式来分析目标网站的结构和数据格式,通过使用Python中的爬虫库,我成功地从网页上提取了NBA球员的相关数据,但在爬虫过程中,我也遇到了网站的反爬虫机制,为了规避这些机制我学到了一些应对策略,如设置合适的请求头、使用代理IP等,以确保稳定的数据爬取,此次实验我用到了代理IP成功找到网站中想要爬取的数据。

