查看原文
其他

大数据下的大学分数线排行榜,快来围观!

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:张雷豪,中南财经政法大学统计与数学学院

本文编辑:尚晨曦

技术总编:王子一

Stata&Python云端课程来啦!

好雨知时节,当春乃发生。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&Python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》。关于Stata,爬虫俱乐部推出了系列课程,内容包括字符串函数、正则表达式、爬虫专题和文本分析,可以随心搭配,价格美丽,物超所值,更多信息可查看Stata系列推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程》等。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!

近日,各省份的高考分数陆续公布,众多高三学子将面临人生的一次重要选择。今天我们使用Python爬取高考网数据库中的院校分数线,为即将面临专业、学校选择的高三学子提供分数线参考。
高考网链接看这里☟☟
(http://college.gaokao.com/schpoint/)
打开上述链接,页面如下:
红色方框中对应的是筛选条件,筛选条件包括高校所在地,考生所在地,文理分科,录取批次以及招生年份。点击下方的学校列表,我们就可以进入到学校主页,查看该校近年来在各省份的招生情况。
以中国人民大学为例,在学校主页中,点击筛选条件,发现网页的网址会发生细微的变化。比如,招生地区中点击天津市,网址变为:http://college.gaokao.com/school/tinfo/2/result/2/1/
再如,文理分科中点击文科,网址变为:http://college.gaokao.com/school/tinfo/2/result/2/2/

再点击其他学校的主页进行尝试。

比如清华大学,会发现网址变为http://college.gaokao.com/school/tinfo/3/result/1/1/。不难发现,网址中的三个数字依次代表学校代码,招生地区代码和文理分科代码,改变筛选条件时只需改变网址中对应的参数即可。

找到网址参数的规律后,我们再对学校招生主页的网页源代码进行分析。

可以看到,所有的分数线数据都存储在<tr>…<tr>标签里。我们使用Xpath语句在行中进行迭代,就可以拿到分数线数据了。

1def parse_page(url, province, major):
2    a 
= requests.get(url,headers=headers).text
3    html = etree.HTML(a)
4    school = html.xpath('//*[@id="wrapper"]/div[4]/p/font[1]//text()')
5    # 获取所有行信息
6    trs = html.xpath('//*[@id="pointbyarea"]/table/tr')
7    # 在行中迭代,逐行提取信息
8    for tr in trs[1:len(trs)]:
9        # strip删除字符串开头和结尾处的换行符
10        year = tr.xpath('./td[1]//text()')
11        year = ''.join(year).strip()
12        min_ = tr.xpath('./td[2]//text()')
13        min_ = ''.join(min_).strip()
14        batch = tr.xpath('./td[6]//text()')
15        batch = ''.join(batch).strip()
16        # 数据封装
17        data_pack = {
18            "school": school[0],
19            "year": year,
20            "min": min_,
21            "batch": batch,
22            "province": province,
23            "major": major
24        }
25        datas.append(data_pack)

通过循环抓取,我们就可以获得高考网上的所有录取分数线数据了。

如需代码,请转发并联络后台小编哦。

最后,向大家展示近年来各高校的平均录取分数线排名,为即将面临选择的高三学子提供分数线参考,由于篇幅问题,排行仅列出了平均分数线排名位于前300的高校。(部分高校因不招文科生或文科生招生数量很少,因此抓取内容缺失,结果为NaN值。)

近年来各高校的平均录取分数线排名



在此声明:本排行榜根据高考网中的历史录取数据计算得到。截止年份为2020年,计算方法为高校各年在各地录取分数线的简单平均(本文承认此计算方法存在诸多不足,如未考虑各高校在各地区招生规模的差异,各地区考生之间的差异等,本文的目的仅在于反映历史录取的平均情况),并在计算中剔除了以下数据:①录取分数线缺失的数据。②在理科或文科中录取信息少于30的高校。③异常数据。



最后,我们为大家揭秘雪球网(https://xueqiu.com/)最新所展示的沪深证券和港股关注人数增长Top10。

欢迎大家点赞、评论、转发呦~



对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!

往期推文推荐 

《觉醒年代》—带你回到百年前

用Stata画的三维图很奇怪怎么办?

如何随机生成满足特定数据特征的新变量?

爬取无法翻页网页——自然科学基金项目及可视化

爬取京东评论数据进行情感分类

Stata与音乐之间的酷炫连接

这些年,爬虫俱乐部走出的博士们!
         看这里,近五年各校高被引论文上榜名单!

高校经管类核心期刊发文排行榜

疯狂的科研创新加速器——Stata!

  可盐可甜,“粽”有所爱,快来pick你最爱的粽子吧!

  好玩有趣的手绘图形库——cutecharts

  爬虫实战|摩尔庄园微博话题讨论

  一季度财报出炉,哪些公司最烧钱?

  一季度财报出炉,哪些公司最赚钱?

  技能篇 | 图片合并大法

  批量空气质量数据文件合并分析

  Stata17之日期时间新功能

  Stata17之Lasso新功能

        爱奇艺视频弹幕爬取之《小舍得》         数据可视化利器——Matplotlib

  从第七次人口普查看中国人口变化|Stata与Python交互绘图

  200万投资者关注!!哪家公司这么牛?

  
带你领略一天天气之变化

  利用pyecharts看微博粉丝地区分布

  零值太多怎么办?解锁Stata17新命令ziologit

  Stata17新功能之Python API  小罗肥归升级啦|解锁Stata17之新命令xtmlogit  
速度大比拼之Stata17有多快?

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存