美文网首页python爬虫python热爱者
今天你教高考生一个装逼神技!利用Python爬取历年高考成绩!

今天你教高考生一个装逼神技!利用Python爬取历年高考成绩!

作者: 919b0c54458f | 来源:发表于2018-06-13 18:45 被阅读28次

    2.爬取数据

    1.获取各省的分数线信息

    获取各省份的链接:

    # 获取分数线 defget_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 = []foritemincategories:  category_list.append(item.text.strip().replace(' ',''))#替换空格 # 获取分数 tables = soup.select('h3 ~ table')forindex,tableinenumerate(tables):  tr= table.find_all('tr', attrs={'class': re.compile('^c_\S*')})#使用正则匹配 forjintr:  td = j.select('td')  score_list = []forkintd:# 获取每年的分数 if'class'notink.attrs:  score = k.text.strip()  score_list.append(score)# 获取分数线类别 elif'class'ink.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=[]fori 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()returnscore_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')

    进群:125240963   即可获取源码!

    相关文章

      网友评论

        本文标题:今天你教高考生一个装逼神技!利用Python爬取历年高考成绩!

        本文链接:https://www.haomeiwen.com/subject/sikseftx.html