当前位置:   article > 正文

python数据分析和可视化大作业01_爬虫部分_python爬虫数据可视化分析大作业

python爬虫数据可视化分析大作业

python数据分析和可视化大作业01_爬虫部分

目录:

  • 1.确定目标网站,分析网站成分
  • 2.确定爬取内容,导入需要用到的包,创建列表存放数据
  • 3.发送请求,解析目标数据在网页中的标签,在用for循环去依次读取,最后存入数据到csv格式的文件中(python中的一种数据格式)

要求爬虫爬取数据占比20%,数据分析中数据处理占比40%,可视化占比百分之40%

预期目标:爬取球天下的足球板块的积分排行榜,并对数据进行分析和可视化

适用场景:

# 静态化的页面,验证方法,在F12里看preview,是否是第一格请求里就包含了要展示的数据
# 没有通过请求接口返回json包的
  • 1
  • 2

第一步:确定目标网站,分析网站成分

在这里插入图片描述

网站为静态网站,需要提取document中的数据

在这里插入图片描述

2.确定爬取内容,导入需要用到的包,创建列表存放数据

在这里插入图片描述

import requests
import parsel
import pandas as pd

# 1,目标地址
data=['排名','球队','场次','胜','平','负','进球','失球','净胜球','场均进球','场均失球','积分']
url='https://data.qtx.com/jifenbang/Jnlj4Y2624_Dp6xRZL7gw.html'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.发送请求,解析目标数据在网页中的标签,在用for循环去依次读取,最后存入数据到csv格式的文件中(python中的一种数据格式)

网页源码:
在这里插入图片描述

不需要的标签内容:

在这里插入图片描述

爬虫完整代码:

# 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防止中文乱码
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/690569
推荐阅读
相关标签
  

闽ICP备14008679号