当前位置: 首页 > news >正文

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

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]//text()')
teams = e.xpath('//tbody//tr//td[3]//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]//text()')
teams = e.xpath('//tbody//tr//td[3]//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'变量'

相关文章:

  • 2023年甘肃省职业院校技能大赛高职组“信息安全管理与评估”(赛项样卷A)
  • 计算机基础专升本笔记-汇总笔记(一)常考特征、特性、属性
  • Spring基础——方法注入(Method Injection)
  • Qt如何将视频获取单帧
  • java实现pdf转word
  • Java基础知识点
  • MySQL 备份方案
  • EasyRecovery16电脑硬盘数据恢复软件功能详解
  • umi4 项目使用 keepalive 缓存页面(umi-plugin-keep-alive、react-activation)
  • 力扣hot100:560.和为K的子数组(前缀和+哈希表)
  • 基于Mindspore,通过Resnet50迁移学习实现猫十二分类
  • 【C++】类的默认成员函数(上)
  • 【S32DS报错】-8-调用初始化函数Port_Init后,S32DS断开与调试器PEmicro/J-Link的连接,无法调试Debug(基于MCAL)
  • 【conda】实现conda环境迁移的4种方式
  • 数字孪生10个技术栈:数据采集的八种方式
  • 【Leetcode】101. 对称二叉树
  • 【技术性】Search知识
  • bearychat的java client
  • Javascript Math对象和Date对象常用方法详解
  • mac修复ab及siege安装
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • nodejs实现webservice问题总结
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Xmanager 远程桌面 CentOS 7
  • 从PHP迁移至Golang - 基础篇
  • 给初学者:JavaScript 中数组操作注意点
  • 关于extract.autodesk.io的一些说明
  • 简单数学运算程序(不定期更新)
  • 驱动程序原理
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信小程序:实现悬浮返回和分享按钮
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (2)Java 简介
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二)JAVA使用POI操作excel
  • (二)linux使用docker容器运行mysql
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .Family_物联网
  • .net 受管制代码
  • .NET企业级应用架构设计系列之应用服务器
  • .Net中wcf服务生成及调用
  • .NET中统一的存储过程调用方法(收藏)
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [HDU3710]Battle over Cities
  • [IE编程] WebBrowser控件中设置页面的缩放
  • [IMX6DL] CPU频率调节模式以及降频方法
  • [LeetCode] Merge Two Sorted Lists
  • [MySQL]基础的增删改查
  • [nlp] tokenizer
  • [Operating System] {ud923} P4L4: Datacenter Technologies
  • [PHP] 代码重用与函数
  • [Thinking]三个行