补充说明文档及其图片
本项目主要是
爬虫本质上就是模拟浏览器请求,通过自动化脚本实现请求数据的快速获取。因此网站结构及数据的分析是必要的。
打开虎扑网,查看NBA球员信息:
在上图中,请求网站地址为:https://nba.hupu.com/stats/players
按F12,打开“检查”页面:
数据获取最重要的是从HTML网页源代码中获取数据:我们使用浏览器插件来帮我们快速生成Xpath语法
Xpath Helper 的安装和使用
安装完毕后,在需要匹配数据的页面处,使用快捷键打开助手工具(快捷键:ctrl+shift+x), 使用示意图如下:
通过简单的Xpath语句正确获取数据,来查看Xpath语句是否正确。
Python简单的数据爬虫只需要使用request包即可。输入url及user-agent参数即可模拟浏览器进行数据爬取。
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/116.0.0.0 Safari/537.36'} # 得到的仅仅是网页HTML源代码:文本形式展示出来,不具有结构性 res = requests.get(url,headers = headers)
res返回的仅仅是请求得到的HTML网页源代码,它以txt文本的形式展现出来。实际上获取数据并不困难,困难的是如何从获取的数据进行分析处理,提取出有效的数据。上篇我们简单介绍了Xpath插件的使用。如果需要详细学习请移步Xpath学习
# 处理结果 e = etree.HTML(res.text) #变为HTML网页代码,具有结构性 # 使用XPath获取数据 nos= e.xpath('//table[@class="players_table"]//tr/td[1]/text()') names = e.xpath('//table[@class="players_table"]//tr/td[2]/a/text()') teams = e.xpath('//table[@class="players_table"]//tr/td[3]/a/text()') scores = e.xpath('//table[@class="players_table"]//tr/td[4]/text()')
现在简单遍历,查看数据获取情况:
for no,name,team,score in zip(nos,names,teams,scores): print(f"排名:{no} 姓名:{name} 球队:{team} 得分:{score}\n")
可以使用 openpyxl 库来保存数据到 Excel 中,并设置表头的样式为粗体。以下是增加的代码:
openpyxl
#数据保存 # 创建一个新的Excel文件 wb = openpyxl.Workbook() # 选择默认的活动工作表 ws = wb.active # 设置表头样式为粗体 bold_font = Font(bold=True) ws['A1'].font = bold_font ws['B1'].font = bold_font ws['C1'].font = bold_font ws['D1'].font = bold_font # 写入表头 ws['A1'] = '排名' ws['B1'] = '姓名' ws['C1'] = '球队' ws['D1'] = '得分' # 写入数据 for i, (no, name, team, score) in enumerate(zip(nos, names, teams, scores), start=2): ws.cell(row=i, column=1).value = no ws.cell(row=i, column=2).value = name ws.cell(row=i, column=3).value = team ws.cell(row=i, column=4).value = score # 保存Excel文件 wb.save('data.xlsx')
# 该文件主要是获取NBA球员信息。 import requests import openpyxl from lxml import etree from openpyxl.styles import Font def get_nba(): 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/116.0.0.0 Safari/537.36'} # 得到的仅仅是网页HTML源代码:文本形式展示出来,不具有结构性 res = requests.get(url,headers = headers) # 处理结果 e = etree.HTML(res.text) #变为HTML网页代码,具有结构性 # 使用XPath获取数据 nos= e.xpath('//table[@class="players_table"]//tr/td[1]/text()') names = e.xpath('//table[@class="players_table"]//tr/td[2]/a/text()') teams = e.xpath('//table[@class="players_table"]//tr/td[3]/a/text()') scores = e.xpath('//table[@class="players_table"]//tr/td[4]/text()') # 数据遍历 for no,name,team,score in zip(nos,names,teams,scores): print(f"排名:{no} 姓名:{name} 球队:{team} 得分:{score}\n") #数据保存 # 创建一个新的Excel文件 wb = openpyxl.Workbook() # 选择默认的活动工作表 ws = wb.active # 设置表头样式为粗体 bold_font = Font(bold=True) ws['A1'].font = bold_font ws['B1'].font = bold_font ws['C1'].font = bold_font ws['D1'].font = bold_font # 写入表头 ws['A1'] = '排名' ws['B1'] = '姓名' ws['C1'] = '球队' ws['D1'] = '得分' # 写入数据 for i, (no, name, team, score) in enumerate(zip(nos, names, teams, scores), start=2): ws.cell(row=i, column=1).value = no ws.cell(row=i, column=2).value = name ws.cell(row=i, column=3).value = team ws.cell(row=i, column=4).value = score # 保存Excel文件 wb.save('data.xlsx') # 按间距中的绿色按钮以运行脚本。 if __name__ == '__main__': get_nba()
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
Python项目实战——获取NBA球员信息
本项目主要是
分析网站信息
爬虫本质上就是模拟浏览器请求,通过自动化脚本实现请求数据的快速获取。因此网站结构及数据的分析是必要的。
打开虎扑网,查看NBA球员信息:
在上图中,请求网站地址为:https://nba.hupu.com/stats/players
按F12,打开“检查”页面:
数据获取最重要的是从HTML网页源代码中获取数据:我们使用浏览器插件来帮我们快速生成Xpath语法
Xpath Helper 的安装和使用
安装完毕后,在需要匹配数据的页面处,使用快捷键打开助手工具(快捷键:ctrl+shift+x), 使用示意图如下:
通过简单的Xpath语句正确获取数据,来查看Xpath语句是否正确。
编写获取代码
Python简单的数据爬虫只需要使用request包即可。输入url及user-agent参数即可模拟浏览器进行数据爬取。
res返回的仅仅是请求得到的HTML网页源代码,它以txt文本的形式展现出来。实际上获取数据并不困难,困难的是如何从获取的数据进行分析处理,提取出有效的数据。上篇我们简单介绍了Xpath插件的使用。如果需要详细学习请移步Xpath学习
现在简单遍历,查看数据获取情况:
数据保存
可以使用
openpyxl
库来保存数据到 Excel 中,并设置表头的样式为粗体。以下是增加的代码:源码记录