前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬取NBA虎扑球员数据

Python爬取NBA虎扑球员数据

作者头像
松鼠爱吃饼干
发布2020-09-15 16:06:45
1.3K0
发布2020-09-15 16:06:45
举报
文章被收录于专栏:Python分享Python分享

虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球、足球、游戏电竞、运动装备、影视、汽车、数码、情感等一切人和事的见解,热闹、真实、有温度。

受害者地址

代码语言:javascript
复制
https://nba.hupu.com/stats/players

本文知识点:

  • 系统分析网页性质
  • 结构化的数据解析
  • csv数据保存

环境介绍:

  • python 3.6
  • pycharm
  • requests
  • csv

爬虫案例的一般步骤

  • 1.确定url地址(网页分析) 完成一半
  • 2.发送网络请求 requests(js\html\css)
  • 3.数据解析(筛选数据)
  • 4.保存数据(本地文件\数据库)

部分代码

导入工具

代码语言:javascript
复制
import requests  # 第三方工具
import parsel  # 数据解析工具  (css\正则表达式\xpath)
import csv

确定url地址(网页分析) 完成一半 (静态网页\动态网页)

代码语言:javascript
复制
url = 'https://nba.hupu.com/stats/players/pts/{}'.format(page)

发送网络请求 requests(js\html\css)

代码语言:javascript
复制
response = requests.get(url=url)
html_data = response.text

数据解析(筛选数据)

代码语言:javascript
复制
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”即可免费获取

运行代码,效果如下

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 部分代码
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档