三秒钟,我要拿到世界杯所有队伍阵容信息

news2024/9/22 7:26:55

文章目录

  • 🕐I'm coming~
  • 🕑我写了个啥?
  • 🕔咋写的?
  • 🕘代码供上
  • 🕛 See you next time

专栏
Python零基础入门篇🔥
Python网络蜘蛛🔥
Python数据分析
Django基础入门宝典🔥
小玩意儿🔥
Web前端学习
tkinter学习笔记
Excel自动化处理

🕐I’m coming~

若有文章有错误,请在评论区中说出来哦,非常感谢✌️


许久不见,甚是想念呐❗️
偷点闲时时光敲敲代码,写写文章,偷偷更新《小玩意儿》专栏的文章。有一段时间没有写博客了,今日偷得闲时,敲下这篇文章,颇有些神清气爽、怡然自得、心情舒畅、高高兴兴……,好了,编不下去了😆
大家都知道,学期末是大学牲最忙的时候,都忙着复习(预习),这段期间,起早贪黑,三更灯火五更鸡,正是……,总而言之,为了通过(应付)考试,我们很是努力呐,恨不得将时间掰成两半,一半用来复习,另一半也用来复习……,以上是本博主近段没有更近文章的主要原因😭
在这里插入图片描述
现在,趁着时间没注意,偷偷拿一点来用,等会它发现了就得逼着睡觉了,所以我得赶紧敲完这篇文章,好了,言归正传,请各位兄弟姐妹往下瞧瞧👀

🕑我写了个啥?


这次的代码主要实现的是获取2022卡尔塔世界杯⚽️中所有队伍的阵容信息,其中包括各个队伍里的门将、后卫、前锋、中场的对应球员名字信息,然后将信息整理分析,保存到excel表格中展示。也算是给各位爱看球的一个小小福利😜

🕔咋写的?


目标网站👉2022卡尔塔世界杯各队阵容
在这里插入图片描述

👉网页分析和爬取思路:通过分析网页,可以观察到所有信息都放在p标签中,所以通过requests模块爬取信息,最后将数据进行清洗(考验代码逻辑的时候到了😬),获取我们想要的数据。数据获取成功后便可使用openpyxl模块将信息写入excel表格

咱就是说敲完代码之后,这信息嗖的一下,简直就是,一下,就好,结果如下图所示👇
在这里插入图片描述

🕘代码供上


import requests
from lxml import etree
import openpyxl
from openpyxl.styles import Side, Font, Alignment, Border, PatternFill


# 获取各个国家足球队信息
def get_info():
    url = 'http://4p3.cn/article/73925.html'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
    }
    res = requests.get(url, headers=headers)
    html = etree.HTML(res.content.decode('utf-8'))
    info = html.xpath('//dd[@id="pagecontent"]/p/text()')[2:]
    return info


# 保存文件
def save_info(info):
    f = openpyxl.Workbook()
    sheet = f.create_sheet('2022世界杯')
    # 设置列宽
    sheet.column_dimensions['A'].width = 52
    sheet.column_dimensions['B'].width = 52
    sheet.column_dimensions['C'].width = 52
    sheet.column_dimensions['D'].width = 52

    for i in range(len(info)):

        if '国家队' in info[i]:
            max_row = sheet.max_row + 1     # 获取最大行数

            # 设置标题表格样式
            for k in sheet[f'A{max_row}:D{max_row}']:
                for j in k:
                    j.alignment = algn
                    j.border = border
                    j.font = font_title
                    j.fill = pattren_fill

            # 合并单元格
            sheet.merge_cells(f'A{max_row}:D{max_row}')
            # 写上标题并设置行高
            sheet.cell(max_row, 1).value = info[i][:-1] + '(' + info[i+1] + ')'
            sheet.row_dimensions[max_row].height = 30

            # 写上球员类型
            for k in sheet[f'A{max_row + 1}:D{max_row + 1}']:
                for j in k:
                    j.alignment = algn
                    j.border = border
                    j.font = font2
                    j.fill = pattren_fill1
            type1 = ['门将', '后卫', '中场', '前锋']
            # 设置行高
            sheet.row_dimensions[max_row+1].height = 20
            for k in range(len(type1)):
                sheet.cell(max_row+1, k+1).value = type1[k]

            # 获取门将中的球员
            goalkeeper = info[i+2].split(':')[1].split('、' if ',' not in info[i+2] else ',')
            # 获取后卫中的球员
            rear_guard = info[i+3].split(':')[1].split('、' if ',' not in info[i+2] else ',')
            # 获取中场的球员
            midfield = info[i+4].split(':')[1].split('、' if ',' not in info[i+2] else ',')
            # 获取前锋的球员
            vanguard = info[i+5].split(':')[1].split('、' if ',' not in info[i+2] else ',')

            # 取出不同类型的球员人数
            max_people = max([len(goalkeeper), len(rear_guard), len(midfield), len(vanguard)])

            for k in sheet[f'A{max_row + 2}:D{max_row + 2 + max_people}']:
                for j in k:
                    j.alignment = algn
                    j.border = border
                    j.font = font

            # 将球员信息写入表格
            for k in range(len(goalkeeper)):
                sheet.cell(max_row+2+k, 1).value = goalkeeper[k]
            for k in range(len(rear_guard)):
                sheet.cell(max_row+2+k, 2).value = rear_guard[k]
            for k in range(len(midfield)):
                sheet.cell(max_row+2+k, 3).value = midfield[k]
            for k in range(len(vanguard)):
                sheet.cell(max_row+2+k, 4).value = vanguard[k]

    f.save('2022世界杯球队信息.xlsx')


if __name__ == '__main__':
    # 设置字体的样式
    algn = Alignment(vertical='center', horizontal='center')
    side = Side(style='thin', color='000000')
    border = Border(right=side, left=side, top=side, bottom=side)

    # 球员字体
    font = Font(name='宋体', size=12)
    # 球员类型字体
    font2 = Font(name='宋体', size=14)
    # 标题的字体
    font_title = Font(name='宋体', size=16, color='ff0000', bold=True)
    # 表格填充——黄色
    pattren_fill = PatternFill(fill_type='solid', fgColor='ffff00')
    # 表格填充——绿色
    pattren_fill1 = PatternFill(fill_type='solid', fgColor='AACF91')

    info = get_info()
    save_info(info)

🕛 See you next time

好了,今天就敲到这咯~
如果喜欢这篇文章,记得 点赞👍 收藏🌈 再来一个小小的关注哦💖
你们的支持就是我前进的最大动力💪
咱们下次再见👀
peace~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/79801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬核,阿里自爆虐心万字面试手册,Github上获赞89.7K

开篇小叙 现在Java面试可以说是老生常谈的一个问题了,确实也是这么回事。面试题、面试宝典、面试手册......各种Java面试题一搜一大把,根本看不完,也看不过来,而且每份面试资料也都觉得Nice,然后就开启了收藏之路。 …

CSS - 02. CSS进阶

文章目录CSS进阶1 Emmet语法1.1 快速生成HTML结构语法1.2 快速生成CSS样式语法1.3 快速格式化代码2 CSS的复合选择器2.1 什么是复合选择器2.2 后代选择器2.3 子选择器2.4 并集选择器2.5 伪类选择器2.6 链接伪类选择器2.7 :focus 伪类选择器2.8 复合选择器总结3 CSS 的元素显示模…

Pr:导出设置之多路复用器与常规

多路复用器 MULTIPLEXERH.264、HEVC(H.265)和 MPEG 等格式中包含多路复用器 MULTIPLEXER模块,可用于控制如何将视频和音频数据合并到单个流中(又称“混合”)。基本设置Basic Settings多路复用器Multiplexer视频和音频流…

SolidWorks综合教程

SolidWorks综合教程 SolidWorks 认证工程师 (CSWA​​) 考试的完美指南,包含实例、测验和实践培训 课程英文名:SOLIDWORKS Academy A Comprehensive Course on SolidWorks 此视频教程共11.0小时,中英双语字幕,画质清晰无水印&a…

Android编译优化~Gradle构建基准测试

背景 之前对安卓打包编译优化有所实践,但当时对优化提升结果采取了手动测试的办法才拿到结果,而且遇到大型工程更是痛不欲生。不过当时采取的策略是将增量测试代码提到了Git,编译一次抄一次代码,样本数据只重复了10次&#xff0c…

【实时数仓】业务数据采集之Maxwell的介绍、底层原理、安装及初始化、监控功能、采集服务和MySQL的binlog

文章目录一 业务数据采集0 业务数据采集思路1 Maxwell 介绍2 Maxwell工作原理(1) MySQL主从复制过程(2)Maxwell的工作原理3 MySQL的binlog(1)什么是binlog(2)binlog的开启&#xff0…

算法基础篇-07-排序-希尔排序(Shell Sort)

1. 希尔排序简介 希尔排序(Shell Sort) 是一种分组插入排序算法,是基于插入排序算法演进而来;首先取一个整数d1n/2, 将元素分为d1个组,每组相邻元素之间距离d1,在各组内进行直接插入排序;取第二个整数d2d1/2,重复上述分组排序过程…

微信小程序框架(二)-全面详解(学习总结---从入门到深化)

目录 组件_基础视图 容器 view 文本 text 图片 image 组件_滑块视图容器 基本实现 Swiper常用属性说明 组件_滚动视图区域 水平滚动 垂直滚动 常用属性 组件_icon 图标使用 字体图标属性 组件_progress 基本进度条 属性说明 组件_表单 登录页面 组件_button 按钮属…

这个队列的思路是真的好,现在它是我简历上的亮点了。

前几天在一个开源项目的 github 里面看到这样的一个 pr: 光是看这个名字,里面有个 MemorySafe,我就有点陷进去了。 我先给你看看这个东西: 这个肯定很眼熟吧?我是从阿里巴巴开发规范中截的图。 为什么不建议使用 Fix…

k8s-使用kube-install一键部署(亲测超详细)

文章目录测试环境操作系统环境配置升级操作系统内核基础配置k8s前置配置docker 安装kube-install1.获取kube-install软件包kube-install提供两种安装方式通过Web平台安装kubernetes集群通过命令行快速安装kubernetes集群扩容与销毁Node|修复Master|卸载集群Kubernetes Dashboar…

“特耐苏“牌传递窗——洁净区与洁净之间的辅助设备

传递窗安于高洁净要求的洁净区与洁净之间; 传递窗是一种洁净室的辅助设备,主要用于洁净区与洁净区之间、洁净区与非洁净区之间小件物品的传递,以减少洁净室的开门次数,把对洁净室的污染降低到zui低程度。传递窗采用不锈钢板制作,…

【期末过过过90+】【数据库系统概述】亲笔备考笔记+知识点整理+备考建议

文章目录:故事的开头总是极尽温柔,故事会一直温柔……💜一、前言二、考试题型三、必考重点四、知识点梳理及笔记第1章:绪论第2章:关系数据库第3章:关系数据库标准语言SQL第4章:数据库安全性第5章…

动物静态HTML网页作业作品 大学生野生动物保护网页设计制作成品 简单DIV CSS布局网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

网络基础------IP协议

文章目录IP协议的主要功能网段划分IP数量限制WAN口的IP 和 LAN口的IP路由IP协议的主要功能 网络层(IP协议)的主要功能: 地址转换和路由选择 传输层(TCP协议)的主要功能: 传输数据的控制。 有什么区别吗&am…

小程序不在以下request合法域名,http协议添加不了

每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信 问题描述 出现http://xxx.不在以下request合法域名列表中,请参考文档 解决方法 在开发中可以勾上不校验合法域名 在发版中就需要把域名放在通讯域名中 [外链图片转存失败,…

ADI Blackfin DSP处理器-BF533的开发详解26:电子书的应用(含源代码)

硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP软件 硬件链接 功能介绍 代码实现了读取 SD 卡中“/txt/test.txt”路径下的 TXT 文件,将 TXT 文件内容显示到液晶屏上,通过按键“Lift-&…

java计算机毕业设计ssm疫苗接种预约系统小程序24tfm(附源码、数据库)

java计算机毕业设计ssm疫苗接种预约系统小程序24tfm(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&…

【数据结构】TopK问题

TopK 在N个数中 找出最大或最小的前k个数,就是TopK算法。比如有一组数字,[1,2,3,4,5,6,7,8,9],这组数中最大的前 3(k)个数是 9,8,7。最小的 前3个数是 1,2,3。而TopK算法就是找出最大或者最小的前K个数。我们就用堆来实…

【mmdetection系列】mmdetection之backbone讲解

如果是自己来写这部分代码的话,真的是很容易,如果这个框架中有自带的backbone结构的话,那可以从其他地方找到对应的pytorch版本实现,或者自己写。 配置部分在configs/_base_/models目录下,具体实现在mmdet/models/bac…

微信小程序——云音乐界面

文章目录第一章 开发前的准备一、项目展示二、项目分析三、项目初始化第二章 标签页切换一、任务分析二、常用组件介绍三、编写页面结构和样式第三章 音乐推荐一、任务分析二、组件介绍三、编写音乐推荐页面结构和样式第一章 开发前的准备 一、项目展示 音乐小程序项目效果展…