当前位置: 首页 > 编程日记 > 正文

Python爬取考研数据:所有985高校、六成211高校均可调剂

又到了一年一度的考研出分时间啦,近期有不少朋友让笔者帮他们分析如何提前做好调剂。复试与调剂总是密不可分。今天,给大家分享一些调剂的重要知识点,希望你在调剂的时候,能明白调剂的趋势与规则。

也许,大家对于调剂的印象,就是只要等待招生单位的复试通知就可以了,其实这是错误的,这里会经历很多流程,如筛选排除,但最终决定权还是在导师的手里,每年都会有五分之一的考生达到了分数线,却倒在了调剂上。那么具体原因有哪些呢?

作者 | 小康康

编辑 | 胡巍巍

来源 | CSDN(ID:CSDNnews)

考研调剂中的机遇与风险

一、在获取调剂信息的时候,出现重要的延误,没有及时获取一手信息,导致很多人提前联系导师,博得好印象。

二、成绩达标,获取的调剂信息太少,没有去到自己心仪的高校,而被迫进行无奈的选择。

三、调剂信息量太大,大家都知道1-4月是调剂信息的爆发期,每天盯着大量的内容,难免会有所遗漏,没有做好信息的快速筛选,导致匆忙应对调剂、而忽略了自身的匹配性。

以上这三种被刷的概率是最大的,所以,一定要评估好自己的综合能力,调剂也是一门技术活,认清自己,选择合适才是王道。下面再列举一些调剂的技巧。

要想成功调剂,首先要把握调剂的第一手信息,能及时地获取到哪所高校的专业招生人数不足,而且符合你的条件,是很有必要的。同时,调剂也是有要求的,如下,

一、具备国家规定的复试资格;

二、入学考试统考科目中的俩科要与调剂专业的考试科目完全相同,两科的专业考试科目要相同或相近(专业不对口,调剂成功的机率为零);

三、优先考虑本专业内部的调剂,再考虑跨专业调剂,最后是跨校调剂;

四、咨询高校研招办确认招生人数是否已满,满的不要考虑了(获取第一手招生空缺信息很重要);

五、不要等待复试结果,各校的复试时间有差异,容易错失调剂的机会。

调剂数据爬虫Selenium开发实战

网上有很多网站都在公布调剂信息,其中大多数实验室的一手调剂信息都是公布在论坛的,再有很多网站小编转手Copy自己的网站里,那么今天就要说一说怎么去获取调剂数据并进行分析。

本文只获取数据并进行数据分析,以帮助大家更好的了解调剂形势。

选取中国考研网站上公布调剂查询页面,其页面效果大致如图所示:

先对页面结构进行分析,可以看出是【信息流】+【粗->细】+【翻页】的结构。

针对这种结构,采用Python+Selenium进行爬虫开发。

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11)、Mozilla 、Firefox、Safari、Google Chrome、Opera等。

这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好地工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

大学名称、专业名称以及调剂标题名称,均在列表中。那么:

第一步:获取【信息流所在的HTML元素】

通过对HTML进行解析,可以发现所有的信息流的都是DIV标签包裹的,其共同特征都是class=”info-item font14” 。

由此想到Selenium中的一个接口find_elements_by_xpath,那么Xpath是什么呢?

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。取节点 XPath使用路径表达式在XML文档中选取节点。节点是通过沿着路径或Step来选取的。

下面列出了最有用的路径表达式:

表达式

描述

nodename

选取此节点的所有子节点。

/

从根节点选取。

//

从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

.

选取当前节点。

..

选取当前节点的父节点。

@

选取属性。

在下面的表格中,已列出了一些路径表达式以及表达式的结果:

路径表达式

结果

bookstore

选取 bookstore 元素的所有子节点。

/bookstore

选取根元素 bookstore。

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore/book

选取属于 bookstore 的子元素的所有 book 元素。

//book

选取所有 book 子元素,而不管它们在文档中的位置。

bookstore//book

选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。

//@lang

选取名为 lang 的所有属性。

通过xpath,可以根据标签中的子属性以及层级结构进行自定义的精细筛选。

那么,针对这里的信息流Xpath,应该怎么去写代码呢?

可以看到信息是属于DIV的,Class均为info-item font14,于是可以得出:

到这里,就得到了调剂的所有信息流板块,接下来要做的是针对每一个信息流板块单独解析,拿出其中的标签与超链接。

可以看到信息流的子项如下图所示,这个时候,可以根据class=”school” 抓取大学名称,根据class=”name”抓取专业名称 ,根据class=”title”抓取超链接和标题,根据class=”time”抓取发布日期。

代码如下所示:

之后,点开一个详情页,查看调剂的内容:

可以看到页面的排版如上,所需要的调剂内容就是图中红框标识出来的,这里对页面进行HTML解析,发现红框的HTML标签为DIV,class=”student-body font14” 。

同理,还用上神奇的Xpath来进行抓取。

并用innerHTML属性获取网页格式字符串。

就这样,就完成了调剂基本数据的抓取,把数据存到一个数据表里,进行分析。

SQL编程与数据分析

因为数据存在的MySQL数据库中,为了方便和更直观的展示出数据分析的思路和过程,这里采用的SQL语句进行数据查询与提取。

1.学校层次分析

首先分析,历年调剂高校的层次【985 211 双非】。

SQL代码为:

结果为:

之后,为了方便统计高校的层次分布,在外部再套上一层GROUP BY语句进行分类:

结果如下图所示,可以看出大量调剂学校来自于双非高校,但是考虑到211大学的总量为112所,985大学总量为39所,可以看出,接近62%的211高校都发布了调剂信息,所有的985高校都发布过调剂信息。

可以得出,调剂中还是有很大很大机会可以进入211,985高校的,每个高校都会发布招生机会,但是能不能把握住!就要看自己了!

这可能就是,机会就在眼前,能不能把握就看自己了。用Matplotlib画出来的饼状图如下图所示:

2.学校类型分析

接下来,看看各大高校的学校类别,都是什么类型的学校,这个简单,一个SQL解决。

哇,可以看到语言、政法、体育类的高校,调剂信息很少,都是个位数。而主要是理工、综合类型的高校调剂机会比较多,小同学们,这下在搜集高校调剂信息的时候,就可以更有侧重点了。

通过Matplotlib绘制出这个饼状图片:

3.学校地域分析

同理,对调剂学校所在的省市进行数据分析,得出如下柱状图:

可以看到调剂机会遍布全国,只要你认真把握,一定可以去的了自己理想的城市,寻找理想的TA!

4.专业/技能/领域分析

通过对专业进行分类筛选,绘制出专业云图,通过Jieba分词,与自建词典集合相似词语聚类算法,发现调剂中总共涉及的【技能/专业/领域】词汇达到6006种,真可谓是门类广阔啊,也是每个小众学科的福音。

其中几大热门专业和研究方向如下所示:经管仍是调剂中最吃香的专业,其次就是理工科了。本人就是生物医学工程专业出生的,在这里看到了自己的专业,还挺欣慰。

总结

经过从Selenium爬虫开发,到数据库Select查询,再到Matplotlib图表绘制,仅仅通过三大步骤,就可以发现考研调剂是一个机遇与风险并存的大事件,在这里全国所有985和超半数的211,几乎全部的高校都在向你敞开怀抱,每一个考生需要有充分的耐心去把握住属于自己的机会,不泄气,不骄不躁。

【end】

精彩推荐

CSDNx巨杉大学联合认证学习,免费开放!“分布式数据库集训营”帮助您从零开始学习分布式数据库、分布式架构知识,现在加入活动,完成课程还将专属礼品。快来参加吧~

了解详情:

http://www.sequoiadb.com/cn/university-camp


推荐阅读

  • CNN vs RNN vs ANN——3种神经网络分析模型,你pick谁?

  • 从知青、终身教授到芯原创始人,戴伟民的中国“芯”之路

  • 2020,人工智能和深度学习未来的五大趋势

  • 被盗巨鲸用户可能遭到了持续性攻击

  • RabbitMQ VS Kafka:消息队列与流处理平台之争

  • 复工第一周:食堂吃出了高考的感觉……


  • 你点的每个“在看”,我都认真当成了AI

相关文章:

iOS审核秘籍】提审资源检查大法

iOS审核秘籍】提审资源检查大法 2015/11/27阅读(752)评论(1)收藏(6)加入人人都是产品经理【起点学院】产品经理实战训练营,BAT产品总监手把手带你学产品点此查看详情! 本篇主要是提审…

谈一次单元测试驱动代码重构

目前团队并没有QA岗,而且在很长一段时间内,可能也不会设立QA岗,所以我们需要RD保证代码的质量。而鉴于人类天生的“惰性”,很多时候质量完全依赖于作者的能力以及职业素质。于是我在团队内推动单元测试,并要求提升测试…

新机会在广州拓波

公司简介广州拓波软件科技有限公司的前身为 Turbomail工作室,由广州华工信息软件(集团)有限公司于2002 年成立,是一家专业研发电子邮件系统、企业即时通信和企业短信的开发组织,2005年TurboMail工作室正式发布1.0.2版本…

关于正则表达式,这篇都讲清楚了

作者 | 猪哥来源 | 裸睡的猪(ID:rgznai100)目前越来越多的网站、编辑器、编程语言都已支持一种叫“正则表达式”的字符串查找“公式”,有过编程经验的同学都应该了解正则表达式(Regular Expression 简写regex)是什么东…

MJExtension简介

MJExtension简介 前言:关于MJExtension更多的使用,可以到github网站上根据详述学习。 字典转模型比较流行的第三方框架 Mantle所有模型都必须继承自MTModel JSONModel所有模型都必须继承自JSONModel MJExtension不需要强制继承任何其他类 框架需要考虑的…

Discuz!常用函数解析(续)

/*** 产生随机码* param $length - 要多长* param $numberic - 数字还是字符串* return 返回字符串*/function random($length, $numeric 0) {PHP_VERSION < 4.2.0 && mt_srand((double)microtime() * 1000000);if($numeric) {$hash sprintf(%0.$length.d, mt_ran…

基于新型忆阻器的存内计算原理、研究和挑战

作者 | 林钰登、高滨、王小虎、钱鹤、吴华强来源 | 《微纳电子与智能制造》期刊引言过去半个世纪以来 &#xff0c;芯片计算性能的提高主要依赖于场效应晶体管尺寸的缩小。随着特征尺寸的减小 &#xff0c;器件的制备成本和制造工艺难度不断增加 &#xff0c;芯 片性能的提升愈…

3、JPA一些常用的注解

常用注解有下面这些&#xff1a; ①&#xff1a;Entity、Table、Id、GeneratedValue、Column、Basic ②&#xff1a;Transient 用于忽略某个属性&#xff0c;而不对该属性进行持久化操作 ③&#xff1a;Temporal 一、第①组注解 Entity 标注用于实体类声明语句之前&#xff0c…

实战域树部署,Active Directory系列之十九

实战子域部署<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />域树是Active Directory针对NT4的传统域模型所进行的重要改进。在NT4时代的域模型中&#xff0c;每个域都要使用没有层次结构的NETBIOS名称&#xff0c;而且域和域之…

黑科技抗疫,Python开发者大集结!

2020年初&#xff0c;突如其来的新型冠状病毒肺炎打乱了所有人的节奏&#xff0c;但社会各界迅速团结起来&#xff0c;为抗击疫情贡献出自己的力量。除了捐款捐物外&#xff0c;很多科技公司运用5G、大数据、AI、云计算等新互联网技术&#xff0c;以科技的手段助力抗疫&#xf…

Inplayable技术分享

Inplayable技术分享运维设计模式Web安全工具语言python运维 《aws lambda 通过codebuild上线踩坑指南之 lambda 进程被占用 status error 255》《google pay 配置sub/pub回调》《AWS攻略——使用CodeCommit托管代码》《AWS攻略——使用S3托管静态网页》《AWS攻略——使用CodeB…

将数组A中的内容和数组B中的内容进行交换(数组一样大)

#include <stdio.h>int main() {int arr1[10]{1,2,3,4,5,11,14,16,17,12};int arr2[10]{0,6,7,8,9,15,21,18,19,13};int arr3[10];int i0;for(i0;i<sizeof(arr1)/sizeof(arr1[0]);i){arr3[i]arr1[i];arr1[i]arr2[i];arr2[i]arr3[i];//不定义第三个变量的两种种方法&am…

***必备工具

***必备工具一、扫描工具 X-scan 3.1 焦点出的扫描器&#xff0c;国内最优秀的安全扫描软件之一!非常专业的一个扫描器! X-way 2.5 这也上一个非常不错的扫描器哦!功能非常多!使用也不难,***必备工具! SuperScan 3.0 强大的TCP 端口扫描器、Ping 和域名解析器! Namp 3.5 这个就…

通过评估假设行为来学习人类目标

来源| deepmind编译| 武明利&#xff0c;责编| Carol出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;当我们在现实世界中训练强化学习&#xff08;RL&#xff09;代理时&#xff0c;我们不会希望它们探索不安全的状态&#xff0c;例如将一个移动机器人开进…

ReactiveCocoa入门-part2

ReactiveCocoa是一个框架&#xff0c;它能让你在iOS应用中使用函数响应式编程&#xff08;FRP&#xff09;技术。在本系列教程的第一部分中&#xff0c;你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号。你还学到了如何转换、分割和聚合这些信号。 在本系列教程…

VirtualBox虚拟机安装RedHat7.3编译Linux0.01内核

引子 由于需要编译linux0.01内核&#xff0c;而目前的linux版本太高需要降低gcc版本等等&#xff0c;需要做不少调整非常不方便。 所以&#xff0c;直接安装RedHat7.3&#xff0c;这样就好编译linux0.01的内核了。 但是&#xff0c;安装RedHat7.3需要注意一些问题。 下载老…

远程办公是巨头游戏?十倍扩容,他们如何做到百万级并发流量

疫情发生后&#xff0c;除了Zoom这样深耕视频会议多年的软件&#xff0c;钉钉、企业微信、飞书等一大批互联网巨头也开通了免费服务&#xff0c;凭借着自身庞大的资源四处招揽用户。 据说&#xff0c;远程办公工具是2020年的第一个风口。 疫情发生后&#xff0c;除了Zoom这样深…

linux下使用sort命令升序、降序、随机及组合方式排序方法

示例文件&#xff1a;####################################################序号 优先级 字段1 字段21 5 abc def2 5 ae3 wff6 4 l…

mysql数据库备份、恢复文档

说明:为了加强线上数据库安全&#xff0c;避免研发人员误操作造成数据的丢失&#xff0c;制作本文档。一线运维人员可以参考!一、数据备份&#xff1a;专用数据库备份服务器&#xff0c;定时对数据库进行热备、冷备&#xff0c;即主从设置、mysqldump冷备、mysql-bin-log日志备…

Linux环境ddd安装与使用

ddd是一个优秀的调试器&#xff0c;安装ddd破费周折 必须安装x开发环境 1.下载 http://ftp.gnu.org/gnu/ddd/&#xff0c;下载最新的ddd-3.3.12.tar.gz # wget http://ftp.gnu.org/gnu/ddd/ddd-3.3.12.tar.gz # tar zxvf ddd-3.3.12.tar.gz # cd ddd-3.3.12/ 2.配置 # ./…

华为诺亚、北大提出GhostNet​,使用线性变换生成特征图,准确率超MobileNet v3 | CVPR 2020...

作者 | Kai Han, Yunhe Wang等编译 | Conv出品 | AI科技大本营&#xff08;rgznai100&#xff09;受限于内存空间和计算资源&#xff0c;将卷积神经网络部署到嵌入式设备中会比较困难。CNNs中特征图的冗余性是保证其成功的关键&#xff0c;但是在神经网络的结构设计中却鲜有研究…

pap和chap交叉认证

pap和chap交叉认证&#xff1a;R1启动pap&#xff0c;R2启动chap。R1上的配置&#xff1a;Router>enRouter#config tRouter(config)#enable s ciacoRouter(config)#line c 0Router(config-line)#pass ciacoRouter(config-line)#loginRouter(config-line)#logging syRouter(c…

如何在App中实现朋友圈功能之二快速实现用户信息的自定义——箭扣科技Arrownock...

如何在App中实现朋友圈功能之二快速实现用户信息的自定义自我关联社交元素&#xff1a;anSocial中很多的社交元素API&#xff0c;如帖子&#xff08;Post&#xff09;、相册&#xff08;Album&#xff09;、文件&#xff08;File&#xff09;等&#xff0c;这些API的可选参数中…

使用cat /proc/进程id/maps 查看进程内存映射

proc/<PID>/maps 查看进程的虚拟地址空间是如何使用的。 该文件有6列&#xff0c;分别为&#xff1a; 地址&#xff1a;库在进程里地址范围 权限&#xff1a;虚拟内存的权限&#xff0c;r读&#xff0c;w写,x,s共享,p私有&#xff1b; 偏移量&#xff1a;库在进程里地址范…

两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告

整理 | 郭芮 责编 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “求知若饥&#xff0c;虚心若愚”——这个原本出自《全球概览》的俳句&#xff0c;因为乔布斯在斯坦福大学毕业演讲中的引用而备受推崇&#xff0c;流传成为 IT 界的至理名言之一。在…

怎么处理404 错误页面 、处理404页面、asp.net 处理404页面

说明 On 指定启用自定义错误。如果未指定 defaultRedirect&#xff0c;用户将看到一般性错误。 Off 指定禁用自定义错误。这允许显示标准的详细错误。 RemoteOnly 指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。 system.web 元素 下添加下边…

转载:python原生态的输入窗口抖动+输入特效

python原生态的输入窗口抖动输入特效 出处&#xff1a;https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_input.py __author__ Administrator import sys from lib.qm_app import App from PyQt4.QtGui import * from PyQt4.QtCore import * import …

华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...

作者 | VincentLee来源 | 晓飞的算法工程笔记导读&#xff1a;为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题&#xff0c;参考ENAS和NSGA-III&#xff0c;论文提出连续进化结构搜索方法(continuous evolution architecture search, CARS)&#xff0c;最大化利用…

在.Net Micro Framework中显示汉字

摘要:MF平台支持的字体是专有格式&#xff0c;扩展名为tinyfnt&#xff0c;需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体。在.Net Micro Framework SDK中提供了一个叫做TFConvert.exe的工具&#xff0c;我们可以用它在命令行下将PC机上的TrueType或者OpenT…

汇编语言使用C库函数和Linux动态链接

使用printf 代码 #cpuid2.s -- Using C labrary calls .section .data output: .asciz "The processor Vender is %s\n".section .bss .lcomm buffer, 12 .section .text .globl _start _start: movl $0, %eax cpuid …