虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球、足球、游戏电竞、运动装备、影视、汽车、数码、情感等一切人和事的见解,热闹、真实、有温度。
受害者地址
https://nba.hupu.com/stats/players
本文知识点:
系统分析网页性质结构化的数据解析csv数据保存
环境介绍:
python 3.6pycharmrequestscsv
爬虫案例的一般步骤
1.确定url地址(网页分析) 完成一半2.发送网络请求 requests(js\html\css)3.数据解析(筛选数据)4.保存数据(本地文件\数据库)
部分代码
导入工具
import requests # 第三方工具
import parsel # 数据解析工具 (css\正则表达式xpath)
import csv
确定url地址(网页分析) 完成一半 (静态网页动态网页)
url = https://nba.hupu.com/stats/players/pts/{}.format(page)
发送网络请求 requests(js\html\css)
response = requests.get(url=url)
html_data = response.text
数据解析(筛选数据)
selector = parsel.Selector(html_data)
trs = selector.xpath(//tbody/tr[not(@class="color_font1 bg_a")])
for tr in trs:
rank = tr.xpath(./td[1]/text()).get() # 排名
player = tr.xpath(./td[2]/a/text()).get() # 球员
team = tr.xpath(./td[3]/a/text()).get() # 球队
score = tr.xpath(./td[4]/text()).get() # 得分
hit_shot = tr.xpath(./td[5]/text()).get() # 命中-出手
hit_rate = tr.xpath(./td[6]/text()).get() # 命中率
hit_three = tr.xpath(./td[7]/text()).get() # 命中-三分
three_rate = tr.xpath(./td[8]/text()).get() # 三分命中率
hit_penalty = tr.xpath(./td[9]/text()).get() # 命中-罚球
penalty_rate = tr.xpath(./td[10]/text()).get() # 罚球命中率
session = tr.xpath(./td[11]/text()).get() # 场次
playing_time = tr.xpath(./td[12]/text()).get() # 上场时间
print(rank, player, team, score, hit_shot, hit_rate, hit_three,
three_rate, hit_penalty, penalty_rate, session, playing_time)
data_dict = {
排名: rank, 球员: player, 球队: team, 得分: score,
命中-出手: hit_shot, 命中率: hit_rate, 命中-三分: hit_three, 三分命中率: three_rate,
命中-罚球: hit_penalty, 罚球命中率: penalty_rate, 场次: session, 上场时间: playing_time}
csv_write.writerow(data_dict)
运行代码,效果如下