一、说明

由于国家线快出了,故写了一份爬取小木虫网站调剂信息的爬虫代码,方便信息查看。此代码仅用于学习,不作为任何商业用途。
本代码可爬取小木虫任何年份,任何专业的调剂信息。

二、代码

#!~/opt/anaconda3/bin/python
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
import os# 获取网页
def getHTMLText(url):try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return ''# 获取数据
def getDataInfo(infoList, url, pre_params, *args):params = []count = -1for i in args:count += 1par_ = pre_params[count] + iparams.append(par_)# 根据参数获取访问链接for param in params:url += param + '&'# print(url)html = getHTMLText(url)soup = BeautifulSoup(html, 'html.parser')# 获取页码数,并处理空页异常try:pages_tag = soup.find_all('td', 'header')[1].stringpages = int(re.split('/', pages_tag)[1])except:pages = 0# 判读是否只有一页if pages == 0:pages += 1for i in range(pages):  # 遍历每一页page = i + 1url = url + '&page=' + str(page)html = getHTMLText(url)soup = BeautifulSoup(html, 'html.parser')tbody = soup.find_all('tbody', 'forum_body_manage')[0]trs = tbody.find_all('tr')  # 每个学校的全部信息被tr标签包围for tr in trs:  # 遍历每一个学校dicts = {}href = tr.find_all('a')[0].get('href')  # 定位至a标签,提取href的属性值tds = tr.find_all('td')  # 每个学校的各个信息包含在td标签内lens = len(tds)for i in range(lens): # 将各个学校信息添加至字典中if i == 0:title = tds[i].find('a').stringdicts[i] = titleelse:dicts[i] = tds[i].stringdicts['href'] = hrefprint(dicts)infoList.append(dicts) # 每一个学校的信息,添加至列表def outputCSV(infoList, path):data = pd.DataFrame(infoList)# with open(r'./info.csv','w+',encoding='utf-8') as f:try:data.columns = ['标题', '学校', '门类/专业', '招生人数', '发布时间', '链接']except:print('没有调剂信息...')try:if not os.path.exists(path):data.to_csv(path)print('保存成功')else:print('路径存在')except:print('保存失败')# 设定查询参数 -- 专业、年份
def parameters(pro_='', pro_1='', pro_2='', year=''):paramsList = [pro_, pro_1, pro_2, year]return paramsListdef main():url = 'http://muchong.com/bbs/kaoyan.php?'path = './2020计算机调剂信息(截止4.09).csv'pre_params = ['r1%5B%5D=', 'r2%5B%5D=', 'r3%5B%5D=', 'year=']params = parameters(pro_='08', pro_1='0812',year='2020')dataList = []getDataInfo(dataList, url, pre_params, *params)outputCSV(dataList, path)main()

三、代码使用参数说明

def parameters(pro_='', pro_1='', pro_2='', year=''):paramsList = [pro_, pro_1, pro_2, year]return paramsListdef main():url = 'http://muchong.com/bbs/kaoyan.php?'path = './data_info.csv'pre_params = ['r1%5B%5D=', 'r2%5B%5D=', 'r3%5B%5D=', 'year=']params = parameters(pro_='08', pro_1='0801')dataList = []getDataInfo(dataList, url, pre_params, *params)outputCSV(dataList, path)

主体代码已写完,只需要修改main函数中params中的相关参数,即可使用。

parameters函数主要用于返回查询的参数。默认参数都为空。如果都不填,则是爬取小木虫全部年份,全部专业的所有调剂信息。

params具体参数说明:

  • pro_

    所要查询的学科门类。可查询的见下图:

    只要查询填写对应学科门类前的数字即可。例如工学,则:pro_='08'

    注意:填写的为字符串格式

  • pro_1

    填写的一级学科代码。如下图:

    以电子科学与技术为例,同样只需要填写前面代码即可。如:pro_2='0806'

    如果这一项不填,则查询的是前一个填写的整个学科门类所有信息。

  • pro_2

    填写的二级学科代码。如图:

    例如查询物理电子学调剂信息,同上。则填:pro_2='080901'。如果不填,则默认查询的是上一级学科下的所有调剂信息。例如,这里就是全部的电子科学与技术的调剂信息。

  • year

    查询年份。例如查询2020年。year='2020'注意:同样是字符串类型。如果不填,则是查询全部的年份。

    其中,main()函数中的保存路径path,可自定义修改。

**总结:**只需修改params和保存路径url即可。

四、效果图

小木虫调剂信息网站:http://muchong.com/bbs/kaoyan.php

下载源码–并附有截止在4.09前计算机类的调剂信息

2020考研如此激烈,还怕获得不了最新的调剂信息么?来对小木虫考研调剂信息爬取相关推荐

  1. python爬取小木虫的调剂信息(考研调剂学生的福利)

    先看看页面 这里我们以500页,为例,采用xpath选取这里的title,时间以及作者,然后再看看具体信息 红色框即为我们需要的详情信息,全部抓取后写入csv文件 import requests fr ...

  2. 考研调剂信息爬取,以“小木虫”为例

    ps:最近发现这篇文章多了不少游览量,看来随着疫情的好转一直搁置的研究生复试终于是提上了日程,为了更方便大家参考,把数据维护了一下,调剂信息已经更新到今天(4月25日),资源链接放在文末,需要的注意去 ...

  3. 小木虫内蒙古科技大学计算机,2019年内蒙古科技大学招收考研调剂(二)

    现如今,越来越多的企业选择研究生及以上的学历人才进行招聘.但是,考研是选拔性考试,并不是我们想象的那么简单.为此,考研网小编为您整理了"2019年内蒙古科技大学招收考研调剂(二)" ...

  4. 吉林大学考研计算机系分数线,吉林大学考研计算机分数线相关交流问答贴 小木虫论坛-学术科研互动平台...

    Gkc666666 请大家参照附录中的山东大学(威海)2018年硕士生调剂信息,请各位有意向调剂的同学认真阅读附件招收条件,往年山大分数线在320...(1)北京大学.中国人民大学.清华大学.北京航空 ...

  5. 农学跨专业考研计算机,我是如何完成从农学(本科)-理学(硕士)-工学(博士)的跨专业之路 - 考研 - 小木虫 - 学术 科研 互动社区...

    首先介绍自己,男,1992 生(上学迟,没留过级,没复过读,就是正常的上学,老是被别人说年纪大,这我也很无奈呀)本科毕业于某师范大学水产养殖专业(普通一本),硕士毕业某师范大学生态学专业(211),现 ...

  6. 电子信息工程跨考计算机武大,往届从材料跨考武大085208电子与通信工程初试303分 - 考研 - 小木虫 - 学术 科研 互动社区...

    如果您因为分数原因没能如愿考上心目中理想的大学,只要您过了国家线B区分数线(按照往年的政策需要统考数学:参加数一或数二的考试),材料.物理和化学相关专业,您可要参与报名参与桂林理工大学理学院的调剂,) ...

  7. 中国科学院计算机报录比,中科院报录比详情 几条择校建议 - 考研 - 小木虫 - 学术 科研 互动社区...

    2016考研已经落下帷幕 初试,复试,毕业论文等一系列事情终于忙完,终于有点时间写点东西. 一年的拼搏努力,让自己现在走到曾待过的考研自习室,仍然会感到发憷,心有余悸. 下面就给师弟师妹谈一点关于择校 ...

  8. 化学类调剂计算机,汕头大学理学院计算机化学方向招收收985、211院校本科毕业考研调剂生 - 考研 - 小木虫 - 学术 科研 互动社区...

    汕头大学理学院化学系招收收985.211院校本科毕业考研调剂生 导师陈广慧教授研究兴趣: 1. 纳米材料功能化 2. MOF对气体分子吸附 3. 光化学 4. 药物设计 http://sci.stu. ...

  9. 食品科学与工程考研可以考计算机吗,食品科学与工程女汉子,对于考研比较迷茫,有几个问题麻烦各位前辈指点迷津,谢谢 。 - 考研 - 小木虫 - 学术 科研 互动社区...

    茨阕约合肴ツ睦锪耍称贩矫婧玫难S泻芏喟.虻チ幸幌拢� 北京:中国农业大学: 天津:天津科技大学: 河北:河北农业大学: 内蒙古:内蒙古农业大学 辽宁:沈阳农业大学 吉林:吉林农业大学: 黑龙江: ...

最新文章

  1. 同一肢体不同关节的运动想象过程中的多通道脑电图记录
  2. python入门新手项目-Python入门实战项目有哪些适合新手?
  3. python|selenium的API说明文档查看的2种方法
  4. python3 循环写入一对多键值对_为什么Python 3.6以后字典有序并且效率更高?
  5. JavaScript URL编码 代码片段记忆
  6. 前端问题:button按钮在form表单的时候会当成submit提交
  7. 树回归--python Tkinter库创建GUI(2)
  8. Interfaces
  9. CTO 要我把这份 MySQL 规范贴在工位上!
  10. 踏实学习前端,学技术,必有高薪,好的人生,学习量大能力要求高就对了
  11. 百度文库,道客巴巴等文库免积分下载
  12. Spring boot微服务项目中上传图片报错,The field file exceeds its maximum permitted size of 1048576 bytes.
  13. linux查看进程命令wwn,在Linux下查看WWN、WWPN方法
  14. 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
  15. [33期] 穿越地平线的渴望
  16. 华纳云:香港服务器哪家比较好?
  17. FOJ1303——Calendar
  18. STM32MP157 Linux系统移植开发篇19:Linux内核Wi-Fi驱动移植
  19. 直播预告|无监督学习的公平性研究——美国布兰迪斯大学助理教授刘洪甫
  20. 六轴机器人直角坐标系建立_知识篇-六轴机器人坐标

热门文章

  1. 瑞星的彻底批判,一只老甲鱼的末路狂奔
  2. info1110辅导quiz1
  3. 根据经纬度画多边形(返回各个顶点坐标)
  4. 计算机应用技术第一课,计算机应用基础(第一课).ppt
  5. 从零开发HarmonyOS(鸿蒙)运动手表小游戏——黑白翻棋
  6. 第13条 类与接口——使类和成员的可访问性最小化
  7. 2022年全球及中国手术感控行业头部企业市场占有率及排名调研报告
  8. Impala原理简单整理
  9. MySQL推出Applier,可实时复制数据到Hadoop
  10. Discuz中常用数据库操作