赞
踩
目录:
要求爬虫爬取数据占比20%,数据分析中数据处理占比40%,可视化占比百分之40%
预期目标:爬取球天下的足球板块的积分排行榜,并对数据进行分析和可视化
适用场景:
# 静态化的页面,验证方法,在F12里看preview,是否是第一格请求里就包含了要展示的数据
# 没有通过请求接口返回json包的
网站为静态网站,需要提取document中的数据
import requests
import parsel
import pandas as pd
# 1,目标地址
data=['排名','球队','场次','胜','平','负','进球','失球','净胜球','场均进球','场均失球','积分']
url='https://data.qtx.com/jifenbang/Jnlj4Y2624_Dp6xRZL7gw.html'
网页源码:
不需要的标签内容:
爬虫完整代码:
# https://data.qtx.com/jifenbang/Jnlj4Y2624_Dp6xRZL7gw.html import requests import parsel import pandas as pd # 1,目标地址 data=['排名','球队','场次','胜','平','负','进球','失球','净胜球','场均进球','场均失球','积分'] url='https://data.qtx.com/jifenbang/Jnlj4Y2624_Dp6xRZL7gw.html' # 2,发送请求 response = requests.get(url=url) # 3,解析数据 # 把之前的数据转化为一个对象,对象有属性和方法 # xhr---xpath text_data = response.text selector = parsel.Selector(text_data) #根据需要得到的数据在网页源代码中的位置和标签,在根据内容筛选不需要的选项 trs = selector.xpath('//tbody/tr[not(contains(@class, "tc_score_thead") or contains(@class, "tc_score_top"))]') #4.for循环分层读取数据 for tr in trs: rank = tr.xpath('./td[1]/i/text()').get() team = tr.xpath('./td[2]/span/a/text()').get() changci = tr.xpath('./td[3]/text()').get() win = tr.xpath('./td[4]/text()').get() pin= tr.xpath('./td[5]/text()').get() fu = tr.xpath('./td[6]/text()').get() jinqiu = tr.xpath('./td[7]/text()').get() shiqiu = tr.xpath('./td[8]/text()').get() shenqiu = tr.xpath('./td[9]/text()').get() avggoal = tr.xpath('./td[10]/text()').get() avgungoal = tr.xpath('./td[11]/text()').get() score = tr.xpath('./td[12]/text()').get() #5.存入需要的数据 data.append([rank,team,changci,win,pin,fu,jinqiu,shiqiu,shenqiu,avggoal,avgungoal,score]) # 写入CSV文件 df = pd.DataFrame(data) df.to_csv('yingchao.csv', encoding='gbk', index=False, header=False) #默认为utf-8.改成gbk防止中文乱码 ngchao.csv', encoding='gbk', index=False, header=False) #默认为utf-8.改成gbk防止中文乱码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。