C罗要来中国了!Python爬取C罗所有比赛数据

一、爬取目标

C罗要来中国了!Python爬取C罗所有比赛数据

二、完整源码

#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#
# Copyright (c) 2024 愤怒的it, All Rights Reserved.
# FileName : code.py
# Date : 2024.01.13
# Author : 愤怒的it
# Version : 1.0.0
# Node : 欢迎关注微信公众号【愤怒的it男】
#
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

import csv#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
#
# Copyright (c) 2024 愤怒的it, All Rights Reserved.
# FileName : code.py
# Date : 2024.01.14
# Author : 愤怒的it
# Version : 1.0.0
# Node : 欢迎关注微信公众号【愤怒的it男】
#
#""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

import csv
import requests
import numpy as np
from lxml import etree
from prettytable import PrettyTable
    
def getData(baseUrl, headers):
    response = requests.get(url=baseUrl, headers=headers)
    html = etree.HTML(response.text)
    
    saiji = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[1]/text()")
    julebu = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[2]/text()")
    shangchang = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[3]/text()")
    shoufa = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[4]/text()")
    jinqiu = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[5]/text()")
    zhugong = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[6]/text()")
    huangpai = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[7]/text()")
    hongpai = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[8]/text()")
    tibu = html.xpath("//div[@class='total-con-wrap']//p[@class='td']/span[9]/text()")
    
    data = np.stack((saiji, julebu, shangchang, shoufa, jinqiu, zhugong, huangpai, hongpai, tibu))
    data = np.transpose(data).tolist()
    return data
    
def printData(result):
    table = PrettyTable()
    table.field_names = ["赛季""俱乐部""上场""首发""进球""助攻""黄牌""红牌""替补"]
    table.add_rows(result)
    print(table)

def saveData(result):
    with open('C罗比赛数据.csv''w', newline=''as file:
        writer = csv.writer(file)
        writer.writerows(result)

def main():
    result = []
    baseUrl = 'https://www.dongqiudi.com/player/50000356.html'
    headers = {'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    result = getData(baseUrl, headers)
    printData(result)
    saveData(result)
    
if __name__== "__main__" :
    main()

三、爬取结果

+-----------+------------+------+------+------+------+------+------+------+
| 赛季 | 俱乐部 | 上场 | 首发 | 进球 | 助攻 | 黄牌 | 红牌 | 替补 |
+-----------+------------+------+------+------+------+------+------+------+
2023/2024 | 利雅得胜利 |  31  |  30  |  30  |  11  |  2   |  0   |  0   |
2022/2023 | 利雅得胜利 |  19  |  19  |  14  |  2   |  4   |  0   |  0   |
2022/2023 | 曼联 |  16  |  10  |  3   |  2   |  3   |  0   |  0   |
2021/2022 | 曼联 |  38  |  35  |  24  |  3   |  9   |  0   |  0   |
2021/2022 | 尤文图斯 |  1   |  0   |  0   |  0   |  1   |  0   |  0   |
2020/2021 | 尤文图斯 |  44  |  41  |  36  |  5   |  5   |  0   |  2   |
2019/2020 | 尤文图斯 |  46  |  46  |  37  |  5   |  3   |  0   |  0   |
2018/2019 | 尤文图斯 |  43  |  41  |  28  |  10  |  4   |  1   |  2   |
2017/2018 | 皇家马德里 |  44  |  42  |  44  |  8   |  4   |  1   |  2   |
2016/2017 | 皇家马德里 |  46  |  46  |  42  |  11  |  5   |  0   |  0   |
2015/2016 | 皇家马德里 |  48  |  48  |  51  |  15  |  4   |  0   |  0   |
2014/2015 | 皇家马德里 |  54  |  52  |  61  |  21  |  7   |  1   |  2   |
2013/2014 | 皇家马德里 |  47  |  47  |  51  |  12  |  7   |  1   |  0   |
2012/2013 | 皇家马德里 |  55  |  51  |  55  |  11  |  13  |  1   |  4   |
2011/2012 | 皇家马德里 |  55  |  54  |  60  |  14  |  7   |  0   |  1   |
2010/2011 | 皇家马德里 |  54  |  51  |  53  |  17  |  7   |  0   |  3   |
2009/2010 | 皇家马德里 |  35  |  33  |  33  |  10  |  4   |  2   |  2   |
2008/2009 | 曼联 |  53  |  48  |  26  |  10  |  9   |  1   |  5   |
2007/2008 | 曼联 |  49  |  46  |  42  |  7   |  7   |  1   |  3   |
2006/2007 | 曼联 |  53  |  49  |  23  |  14  |  5   |  0   |  4   |
2005/2006 | 曼联 |  47  |  37  |  11  |  7   |  9   |  1   |  10  |
2004/2005 | 曼联 |  50  |  40  |  9   |  9   |  5   |  0   |  10  |
2003/2004 | 曼联 |  41  |  25  |  6   |  7   |  4   |  1   |  16  |
2002/2003 | 葡萄牙体育 |  31  |  14  |  5   |  6   |  1   |  0   |  17  |
+-----------+------------+------+------+------+------+------+------+------+

C罗要来中国了!Python爬取C罗所有比赛数据

C罗要来中国了!Python爬取C罗所有比赛数据

四、免责声明

本公众号所有源码均为个人学习所编写,仅可用于计算机技术学习及研究等合法行为,禁止利用本公众号的源码从事任何违反本国(地区)法律法规的业务,如有发现存在违法违规行为我会举报到网监部门。

原文始发于微信公众号(愤怒的it男):C罗要来中国了!Python爬取C罗所有比赛数据

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/234332.html

(0)
葫芦侠五楼的头像葫芦侠五楼

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!