标签:url plot series strip sts god int requests 今天
2.爬取数据 1.获取各省的分数线信息 获取各省份的链接: # 获取分数线 def get_score(url): web_data = requests.get(url, headers=header) soup = BeautifulSoup(web_data.content, ‘lxml‘) # 获取省份信息 provice = soup.select(‘.col-nav span‘)[0].text[0:-5] # 获取文理科 categories = soup.select(‘h3.ft14‘) category_list = [] for item in categories: category_list.append(item.text.strip().replace(‘ ‘, ‘‘))#替换空格 # 获取分数 tables = soup.select(‘h3 ~ table‘) for index, table in enumerate(tables): tr = table.find_all(‘tr‘, attrs={‘class‘: re.compile(‘^c_\S*‘)})#使用正则匹配 for j in tr: td = j.select(‘td‘) score_list = [] for k in td: # 获取每年的分数 if ‘class‘ not in k.attrs: score = k.text.strip() score_list.append(score) # 获取分数线类别 elif ‘class‘ in k.attrs: score_line = k.text.strip() score_data = { ‘provice‘: provice.strip(),#省份 ‘category‘: category_list[index],#文理科分类 ‘score_line‘: score_line,#分数线类别 ‘score_list‘: score_list#分数列表 } score_detail.insert_one(score_data)#插入数据库 3.数据可视化 爬取数据只是第一步,接下来就要对数据进行处理展示了。从mongodb 中查找出数据,对数据进行清洗整理,由于我这里的pyecharts有点问题,所以使用echarts进行展示 1).筛选省份等信息 直接通过mongodb的find函数,限制查找的内容 import pymongo import charts client = pymongo.MongoClient(‘localhost‘, 27017) gaokao = client[‘gaokao‘] score_detail = gaokao[‘score_detail‘] # 筛选分数线、省份、文理科 def get_score(line,pro,cate): score_list=[] for i in score_detail.find({"$and":[{"score_line":line},{"provice":pro},{‘category‘: cate}]}): score_list = i[‘score_list‘] score_list.remove(‘-‘)#去掉没有数据的栏目 score_list = list(map(int, score_list)) score_list.reverse() return score_list 2).定义相关数据 # 获取文理科分数 line = ‘一本‘ pro = ‘北京‘ cate_wen = ‘文科‘ cate_li = ‘理科‘ wen=[] li = [] wen=get_score(line,pro,cate_wen)#文科 li=get_score(line,pro,cate_li)#理科 # 定义年份 year = [2017,2016,2015,2014,2013,2012,2011,2010,2009] year.reverse() 3).折线图展示 series = [ { ‘name‘: ‘文 科‘, ‘data‘: wen, ‘type‘: ‘line‘ }, { ‘name‘: ‘理科‘, ‘data‘: li, ‘type‘: ‘line‘, ‘color‘:‘#ff0066‘ } ] options = { ‘chart‘ : {‘zoomType‘:‘xy‘}, ‘title‘ : {‘text‘: ‘{}省{}分数线‘.format(pro,line)}, ‘subtitle‘: {‘text‘: ‘Source: gaokao.com‘}, ‘xAxis‘ : {‘categories‘: year}, ‘yAxis‘ : {‘title‘: {‘text‘: ‘score‘}} } charts.plot(series, options=options,show=‘inline‘) 私信小编01即可获取源码和神秘大礼包哦!今天你教高考生一个装逼神技!利用Python爬取历年高考成绩!
标签:url plot series strip sts god int requests 今天
原文地址:https://www.cnblogs.com/PY147/p/9179297.html