利用python实现网页数据存储到python的csv文件的练习

发布时间 2023-04-26 17:37:34作者: yesyes1

相关步骤

1、导入相关模块

import requests
import parsel
import csv

2、爬取python数据,并根据其表头,将数据按照顺序存储到csv表格文件中

f = open('排名.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['名次', '学校名称', '综合得分', '星级排名', '办学层次'])
url = 'http://m.gaosan.com/gaokao/265440.html'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
response.encoding = response.apparent_encoding
selector = parsel.Selector(response.text)
trs = selector.css('#page tr')

for tr in trs:
    dit = {}
    ranking = tr.css('td:nth-child(1)::text').get()
    dit['名次'] = ranking
    school = tr.css('td:nth-child(2)::text').get()
    dit['学校名称'] = school
    score = tr.css('td:nth-child(3)::text').get()
    dit['综合得分'] = score
    star = tr.css('td:nth-child(4)::text').get()
    dit['星级排名'] = star
    level = tr.css('td:nth-child(5)::text').get()
    dit['办学层次'] = level
    csv_writer.writerow(dit)
    print(dit)

f.close()

3、将存储到csv文件中的各项数据读取出来

import pandas as pd

# 获取到csv文件表格中的相关信息
df = pd.read_csv('排名.csv',index_col=0)
df.head()
# print(df.dtypes)

# 各个学校各自排名
d1 = df.index.tolist()
print(d1)
d2 = df['学校名称'].values.tolist()
print(d2)
d3 = df['综合得分'].values.tolist()
print(d3)

4、将读取出来的各项数据作为柱状图的x或者y轴的数据

import matplotlib.pyplot as plt

# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(100, 20))#6,8分别对应宽和高


plt.bar(d2,d3)
plt.xticks(rotation=300)

5、实现数据的可视化

plt.title("中国大学综合排名")
plt.show()