- 前言
- 一、部分爬取数据源码
- 二、echarts可视化图形展示
- 1.聚合柱状图
- 2.折线图
- 3.正负柱状图
- 4.玫瑰图
- 5.折线图
- 6.词云图
- 7.大屏展示
- 8.中国地图
前言
项目源码获取请私聊!!!!
一、部分爬取数据源码参考网址:
https://yz.chsi.com.cn/
https://yz.chsi.com.cn/yztj/
http://www.chinakaoyan.com/tiaoji/schoollist.shtml
import csv
import requests
from lxml import etree
def htmls(url,headers):
html_oil=requests.get(url=url,headers=headers).text#用requests方法拿到源代码
return html_oil
#解析2022年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(学术学位类)数据
def getinfo(html_oil):
source=etree.HTML(html_oil)#将传进去的源代码转变成_Element对象
alls = source.xpath('//table[@]/tbody')[0] # 获取所需数据总节点
title = source.xpath('/html/body/div[1]/div[2]/div[3]/h2/span/text()')[0]#获取标题
alls1 = alls.xpath('./tr') # 获取所需数据所有节点
datas = [] # 建立一个列表存储所有数据
data = alls1[2].xpath('./td/text()')#获取数据节点
datas.append(data[:7])#去除多余的值
for i in range(3, len(alls1)):
data = alls1[i].xpath('./td/text()') # 遍历所有节点并获得数据
datas.append(data) # 将数据存入datas列表
print(datas)#打印结果
return datas,title
# 2022年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(专业学位类)数据
def getinfo1(html_oil):
source = etree.HTML(html_oil)#将传进去的源代码转变成_Element对象
alls = source.xpath('//table[@]/tbody')[0] # 获取所需数据总节点
title1 = source.xpath('/html/body/div[1]/div[2]/div[3]/h2/span/text()')[0]#获取标题
alls1 = alls.xpath('./tr') # 获取所需数据所有节点
datas1 = [] # 建立一个列表存储所有数据
data = alls1[2].xpath('./td/text()')#获取数据节点
datas1.append(data[:7])#去除多余的值
for i in range(3, len(alls1)):
data = alls1[i].xpath('./td/text()') # 遍历所有节点并获得数据
if len(data)>7:
data=data[2:]#去除空值
datas1.append(data) # 将数据存入datas1列表
else:
datas1.append(data) # 将数据存入datas1列表
print(datas1)#打印结果
return datas1, title1
# 存储为csv
def saveinfo(datas,title,header):
with open('static/{}.csv'.format(title), 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f) # 打开csv文件
writer.writerow(header)#写入标题
writer.writerows(datas) # 写入数据
if __name__ == '__main__':
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'
}#UA伪装
urls ='https://yz.chsi.com.cn/kyzx/kp/202203/20220311/2172246782.html'#网址
html_oil=htmls(url=urls,headers=header)#获取源代码
datas,title=getinfo(html_oil)#解析数据
headerbt = ['学科门类(专业)名称', '总分(A类考生)', 'A类考生单科(满分=100分)', 'A类考生单科(满分>100分)', '总分(B类考生)', 'B类考生单科(满分=100分)', 'B类考生单科(满分>100分)']#设置标题
saveinfo(datas=datas,title=title,header=headerbt)#存储数据
urls1 = 'https://yz.chsi.com.cn/kyzx/kp/202203/20220311/2172246781.html'#网址
html_oil1 = htmls(url=urls1, headers=header)#获取源代码
datas1,title1=getinfo1(html_oil1)#解析数据
headerbt1 = ['学科门类(专业)名称', '总分(A类考生)', 'A类考生单科(满分=100分)', 'A类考生单科(满分>100分)', '总分(B类考生)', 'B类考生单科(满分=100分)', 'B类考生单科(满分>100分)']#设置标题
saveinfo(datas=datas1,title=title1,header=headerbt1)#存储数据
import csv
import requests
from lxml import etree
html=[]#建立一个列表存储所有网址源代码
def htmls(headers):
for i in range(1,50):
urls = 'http://www.chinakaoyan.com/tiaoji/schoollist/random/20200215223418/pagenum/{}.shtml'#遍历获取所有网址
html_oil=requests.get(url=urls,headers=headers).text#用requests方法拿到源代码
html.append(html_oil)#存储所有源代码
return html
datas = [] # 建立一个列表存储所有数据
#解析院校发布调剂信息数据
def getinfo(html,headers1):
for a in html:#遍历所有源代码
source = etree.HTML(a)#将传进去的源代码转变成_Element对象
alls = source.xpath('//div[@]')[0] # 获取所需数据总节点
alls1 = alls.xpath('./div[@]')# 获取所需数据所有节点
for i in alls1:
data = i.xpath('./span[@]/a/@href')[0]# 遍历所有节点并获得数据
data='http://www.chinakaoyan.com{}'.format(data)#获取学校信息网址
xx_html = requests.get(url=data, headers=headers1).text#用requests方法拿到学校信息源代码
datas.append(xx_html)#将所有源代码存入datas列表
# print(datas)#打印结果
return datas
#解析学校信息数据
def getinfo1(data):
xx_datas = []# 建立一个列表存储所有数据
for s in data:#遍历所有源代码
source1 = etree.HTML(s)#将传进去的源代码转变成_Element对象
xx_alls = source1.xpath('//div[@]/div[@]')# 获取所需数据总节点
xx_data = []# 建立一个列表存储数据
for xx_alls1 in xx_alls:
xx_name = xx_alls1.xpath('./span[@]/text()')[0]
ss_name=xx_alls1.xpath('./span[@]/text()')[0]#获取学校信息
xx_data.append(xx_name)
xx_data.append(ss_name)#将学校信息遍历存入xx_data列表
xx_datas.append(xx_data)#将所有学校信息存入xx_datas列表
print(xx_datas)#打印结果
return xx_datas
# 存储为csv
def saveinfo(xx_datas,datasName,title):
with open(datasName, 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)#打开csv文件
writer.writerow(title)#写入标题
writer.writerows(xx_datas)#写入数据
if __name__ == '__main__':
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'
}#UA伪装
html=htmls(headers=header)#获取源代码
datas=getinfo(html,headers1=header)#解析数据
xx_datas=getinfo1(data=datas)#解析数据
title=['学校名称','所在省市','专业名称','是否有公费名','发布时间','截止日期']#设置标题
saveinfo(xx_datas=xx_datas,datasName='static/院校发布调剂信息.csv',title=title)#存储数据
二、echarts可视化图形展示
1.聚合柱状图
2.折线图
3.正负柱状图
4.玫瑰图
5.折线图
6.词云图
7.大屏展示
8.中国地图



