重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家介绍Python如何爬取NBA虎扑球员数据,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联建站始终坚持【策划先行,效果至上】的经营理念,通过多达10多年累计超上千家客户的网站建设总结了一套系统有效的全网营销推广解决方案,现已广泛运用于各行各业的客户,其中包括:社区文化墙等企业,备受客户赞扬。
虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球、足球、游戏电竞、运动装备、影视、汽车、数码、情感等一切人和事的见解,热闹、真实、有温度。
受害者地址
https://nba.hupu.com/stats/players
本文知识点:
系统分析网页性质
结构化的数据解析
csv数据保存
环境介绍:
python 3.6
pycharm
requests
csv
爬虫案例的一般步骤
1.确定url地址(网页分析) 完成一半
2.发送网络请求 requests(js\html\css)
3.数据解析(筛选数据)
4.保存数据(本地文件\数据库)
导入工具
import requests # 第三方工具 import parsel # 数据解析工具 (css\正则表达式\xpath) import csv
确定url地址(网页分析) 完成一半 (静态网页\动态网页)
url = 'https://nba.hupu.com/stats/players/pts/{}'.format(page)
发送网络请求 requests(js\html\css)
response = requests.get(url=url) html_data = response.text
数据解析(筛选数据)
selector = parsel.Selector(html_data) trs = selector.xpath('//tbody/tr[not(@class="color_font1 bg_a")]') for tr in trs: rank = tr.xpath('./td[1]/text()').get() # 排名 player = tr.xpath('./td[2]/a/text()').get() # 球员 team = tr.xpath('./td[3]/a/text()').get() # 球队 score = tr.xpath('./td[4]/text()').get() # 得分 hit_shot = tr.xpath('./td[5]/text()').get() # 命中-出手 hit_rate = tr.xpath('./td[6]/text()').get() # 命中率 hit_three = tr.xpath('./td[7]/text()').get() # 命中-三分 three_rate = tr.xpath('./td[8]/text()').get() # 三分命中率 hit_penalty = tr.xpath('./td[9]/text()').get() # 命中-罚球 penalty_rate = tr.xpath('./td[10]/text()').get() # 罚球命中率 session = tr.xpath('./td[11]/text()').get() # 场次 playing_time = tr.xpath('./td[12]/text()').get() # 上场时间 print(rank, player, team, score, hit_shot, hit_rate, hit_three, three_rate, hit_penalty, penalty_rate, session, playing_time) data_dict = { '排名': rank, '球员': player, '球队': team, '得分': score, '命中-出手': hit_shot, '命中率': hit_rate, '命中-三分': hit_three, '三分命中率': three_rate, '命中-罚球': hit_penalty, '罚球命中率': penalty_rate, '场次': session, '上场时间': playing_time} csv_write.writerow(data_dict) # 想要完整源码的同学可以关注我的公众号:松鼠爱吃饼干 # 回复“虎扑NBA”即可免费获取
运行代码,效果如下
关于Python如何爬取NBA虎扑球员数据就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。