爬虫学习笔记-requests爬取NBA得分榜

news2024/11/27 6:36:02

1.导入requests库,用于请求获取URL位置的资源

import requests

2.导入lxml库,解析及生成xml和html文件

from lxml import etree

3.定义发送请求的地址

url = 'https://nba.hupu.com/stats/players'

4.定义请求头

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}

5.发送请求,获取html代码

resp = requests.get(url,headers=headers)

6.处理结果,解析字符串格式的HTML文档对象

e = etree.HTML(resp.text)

7.解析响应的数据,确定XML文档中某部分位置的语言

numbers = e.xpath('//tbody//tr//td[1]/text()')
names = e.xpath('//tbody//tr//td[2]/a/text()')
teams = e.xpath('//tbody//tr//td[3]/a/text()')
scores = e.xpath('//tbody//tr//td[4]/text()')

8. 保存到txt中

with open ('nba1.txt','w',encoding='utf-8') as f:
    for num,name,team,score in zip(numbers,names,teams,scores):
        f.write(f'{num}  {name}  {team}  {score}\n') #f'变量'

8.源码

#导入requests库,用于请求获取URL位置的资源
import requests
#导入lxml库,解析及生成xml和html文件
from lxml import etree
#发送的地址
url = 'https://nba.hupu.com/stats/players'
#伪装
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'}
#发送请求,获取html代码
resp = requests.get(url,headers=headers)
# print(resp.text)
#处理结果,解析字符串格式的HTML文档对象,
e = etree.HTML(resp.text)
#解析响应的数据,确定XML文档中某部分位置的语言
# numbers = e.xpath('//table[@class="players_table"]//tr//td[1]/text()')
numbers = e.xpath('//tbody//tr//td[1]/text()')
names = e.xpath('//tbody//tr//td[2]/a/text()')
teams = e.xpath('//tbody//tr//td[3]/a/text()')
scores = e.xpath('//tbody//tr//td[4]/text()')
#保存到txt中
with open ('nba1.txt','w',encoding='utf-8') as f:
    for num,name,team,score in zip(numbers,names,teams,scores):
        f.write(f'{num}  {name}  {team}  {score}\n') #f'变量'

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

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

相关文章

CSS如何清除默认样式,想学web开发

一面 css 如何实现垂直居中?position 有哪几种?分别说一下对应的效果和用法css 选择器优先级js 原型链,问了js 如何创建对象页面渲染和响应 式MVVM 和 MVC的区别Vue 生命周期,在哪个阶段可以获取页面 dom 信息Vue 的组件通信 &am…

CSS的三种定位,响应式web开发项目教程

标准文档流 文档流:指的是元素排版布局过程中 戳这里领取完整开源项目:【一线大厂前端面试题解析核心总结学习笔记Web真实项目实战最新讲解视频】 ,元素会默认自动从左往右,从上往下的流式排列方式。并最终窗体自上而下分成一行行…

Spring框架的优点

Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大的IOC、AOP及Web MVC等功能。 轻量级:相对于EJB框架而言。 Spring 体系结…

力扣543. 二叉树的直径

Problem: 543. 二叉树的直径 文章目录 题目描述思路复杂度Code 题目描述 思路 1.最大直径 左子树的最大深度 右子树的最大深度; 2.定义一个变量maxDiameter记录最大直径,并编写一个递归函数maxDepth,利用树的后序遍历每次递归求取leftMax&a…

智慧医疗新篇章:Java+SpringBoot技术探索

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

CSS如何清除默认样式,前端开发实训

前端的现状 提到现状,必须先提到一个概念 大前端。由于近几年互联网的发展,尤其是移动互联网的发展,有的大前端概念将 Native 归入前端的范畴,有的大前端概念将 Node 甚至只渲染页面的 PHP 归入前端范畴,但不管怎么说…

一文帮助快速入门Django

文章目录 创建django项目应用app配置pycharm虚拟环境打包依赖 路由传统路由include路由分发namenamespace 视图中间件orm关系对象映射操作表数据库配置model常见字段及参数orm基本操作 cookie和sessiondemo 创建django项目 指定版本安装django:pip install django3.…

部署DNS解析服务

一、安装软件,关闭防火墙,启动服务 1.yum install -y bind bind-utils bind-chroot 2.systemctl stop firewalld && setenforce 0 3.systemctl start named 二、工作目录 /var/named/chroot/etc #存放主配置文件 /var/named/chroot/var/n…

实施 ASPM 面临哪些挑战?

在保护组织的应用程序时,您可能听说过有关应用程序安全状态管理 (ASPM) 的热议。根据研究称,到 2026 年,超过 40% 的开发专有应用程序的组织将采用应用程序安全态势管理。您意识到它有可能彻底改变您的应用程序安全性。但你也明白&#xff0c…

html标签元素类型,web开发工具

面试题 HTML 1,html5有哪些新特性? 2,html5移除了那些元素? 3,如何处理HTML5新标签的浏览器兼容问题? 4,如何区分 HTML 和 HTML5? CSS 1,CSS 选择符有哪些&#xf…

解决前端性能问题:如何优化大量数据渲染和复杂交互?

✨✨祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、分页加载数据 二、虚拟滚动 三、懒加载 四、数据缓存 五、减少重绘和回流 …

docker 安装rabbitmq并配置hyperf使用

这里我想完成的是 制作消息(多个协程制造)——》推送到rabbitmq——》订阅消息队列——》消费消息(ws协程客户端【一次消费多条】/ws前端) 利用 WebSocket 协议让客户端和服务器端保持有状态的长链接,保存链接上来的客…

Doris——纵腾集团流批一体数仓架构

目录 前言 一、早期架构 二、架构选型 三、新数据架构 3.1 数据中台 3.2 数仓建模 3.3 数据导入 四、实践经验 4.1 准备阶段 4.2 验证阶段 4.3 压测阶段 4.4 上线阶段 4.5 宣导阶段 4.6 运行阶段 4.6.1 Tablet规范问题 4.6.2 集群读写优化 五、总结收益 六…

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险

Scala 之舞:林浩然与杨凌芸的 IDEA 冒险 The Dance of Scala: The IDEA Adventure of Lin Haoran and Yang Lingyun 在那个阳光明媚的日子里,林浩然如同一位英勇的探险家,踏入了 Scala 的 IntelliJ IDEA 开发环境的奇妙领域,他带着…

返回两个数组中每个对应位置的两个元素的最小值np.fmin()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 返回两个数组中 每个对应位置的 两个元素的最小值 np.fmin() 选择题 以下代码输出的结果是? import numpy as np a1 [1,np.nan,3] a2 [3,2,1] print("【显示】a1",a1)…

Vue3:OptionsAPI 与 CompositionAPI的比较

1、Vue2 Vue2的API设计是Options(配置)风格的。 Options API 的弊端 Options类型的 API,数据、方法、计算属性等,是分散在:data、methods、computed中的,若想新增或者修改一个需求,就需要分别…

C#高级:Winform桌面开发中DataGridView的详解

一、每条数据增加一个按钮&#xff0c;点击输出对应实体 请先确保正确添加实体的名称和文本&#xff1a; private void button6_Click(object sender, EventArgs e) {//SQL查询到数据&#xff0c;存于list中List<InforMessage> list bll.QueryInforMessage();//含有字段…

OpenCV学习笔记(一)——Anaconda下载和OpenCV的下载

OpenCV是图象识别中有巨大的应用场景&#xff0c;本篇文章以Python为基础。当初学OpenCV的时候&#xff0c;推使用在Anaconda编写代码&#xff0c;原因比较方便&#xff0c;下面我们对于Anaconda的下载过程进行演示。 Anaconda的下载 首先打开官网www.anaconda.com/download找…

Linux开发板移植rz、sz指令实现串口传输文件

一、开发环境 实现开发板和电脑通过串口来收发互传文件。 开发板&#xff1a;NUC980开发板 环境&#xff1a;Ubuntu 22.04.3 LTS 64-bit lrzsz的源码包:例如 lrzsz-0.12.20.tar.gz&#xff0c;下载地址https://ohse.de/uwe/software/lrzsz.html 二、移植步骤 在开发板上移植…