【爬取研招网指定学校专业信息】

news2024/9/27 21:24:53

前言

本文介绍了如何使用 Python 的 requests 库和 BeautifulSoup 库来爬取研究方向信息,并将其保存为 CSV 文件。爬取的网站为“中国研究生招生信息网”(https://yz.chsi.com.cn/)。代码从指定的专业目录页面爬取研究方向的相关信息,并保存为 CSV 文件。

代码

import requests
from bs4 import BeautifulSoup
import re
from fake_useragent import UserAgent

# 伪装请求头
ua = UserAgent()

url = input('请输入专业目录的url:')
response = requests.get(url, headers={'User-Agent': ua.random})
soup = BeautifulSoup(response.text, 'lxml')

# 使用css选择器来查找包含"查看"文本的a标签,并提取其href属性
hrefs = soup.select('a:-soup-contains("查看")')

# 解析学校名称和研究方向代码
dwmc = requests.utils.unquote(url.split('&')[1].split('=')[1], 'utf-8')
yjxkdm = url.split('&')[4].split('=')[1]
filename = dwmc + '_' + yjxkdm + '.csv'

# 打开文件,如果不存在则创建
f = open(filename, 'w')

# 提取href属性,添加上前缀
for href in hrefs:
    href = 'https://yz.chsi.com.cn' + href['href']
    response = requests.get(href, headers={'User-Agent': ua.random})
    soup = BeautifulSoup(response.text, 'lxml')
    
    # 提取详情页信息并写入文件
    a = soup.select('td.zsml-summary')
    for i in a:
        f.write(i.text.strip().replace(',', ' ') + ',')
    
    b = soup.select('span.zsml-bz')
    for i in b:
        f.write(i.text.strip().replace(',', ' ') + ',')
    
    c = soup.select('tbody.zsml-res-items')
    for i in c:
        cleaned_text = re.sub(r'\s+', ' ', i.text.strip()).replace('见招生简章', '')
        f.write(cleaned_text.replace(',', ' ') + ',')
    
    f.write('\n')

# 关闭文件
f.close()

示例

输入内容:

https://yz.chsi.com.cn/zsml/querySchAction.do?ssdm=50&dwmc=%E9%87%8D%E5%BA%86%E5%A4%A7%E5%AD%A6&mldm=08&mlmc=&yjxkdm=0812&xxfs=&zymc=


文件内容:
文件内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1615246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROM修改进阶教程------services.jar文件过小 合并odex apk合并odex 几种方法步骤解析

在上期博文中有说明去卡密等相关操作。但在安卓低版本中有些services.jar文件过小。大小不足1K,这种是无法直接反编译的。我们简单使用压缩软件打开查看。其中文件小的里面没有dex文件。这种需要我们先合并odex使其成为一个可以直接反编译的文件再来操作。操作也可以用于其他a…

Day 31 贪心算法理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

贪心算法理论基础 ​ 贪心算法的本质:选择每一个阶段的局部最优,从而达到系统的整体最优; ​ 贪心的套路就是没有套路,最好的策略就是举反例,因为大多数时候并不要求严格证明,只需要得到普遍性结论即可&a…

Linux之ebpf(1)基础使用

Linux之ebpf(1)基础使用 Author: Once Day Date: 2024年4月20日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可以参考专栏:Linux基础知识_Once-D…

C语言:数据结构(单链表)

目录 1. 链表的概念及结构2. 实现单链表3. 链表的分类 1. 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针链接次序实现的。 链表的结构跟火车车厢相似,淡季时车次的车厢会相应…

Github账号注册

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

NC398 腐烂的苹果

腐烂的苹果 一个腐烂的苹果每分钟可以向上下左右四个方向扩展,扩展之后,又会有新的腐烂的苹果,一直去腐蚀好的苹果,求多少分钟后,网格中全是烂苹果。 第一次做这道题的时候,想到这道题考察的其实是多源BFS…

MATLAB——M文件

M文件 MATLAB允许编写两种程序文件- 脚本−脚本文件是扩展名为.m的程序文件。在这些文件中,您编写了一系列要一起执行的命令。脚本不接受输入,也不返回任何输出。它们对工作区中的数据进行操作。 函数−函数文件也是扩展名为.m的程序文件。函数可以接…

运营商三要素核验接口-手机实名验证API

运营商三要素核验接口是一种API(Application Programming Interface,应用程序编程接口),主要用于通过互联网技术对接通信运营商的实名制数据库,以验证用户提供的手机号码、身份证号码、姓名这三项关键信息(…

算法部署 | 使用TensorRT部署AlphaPose姿态估计算法

项目应用场景 面向 AlphaPose 姿态估计算法的推理加速场景,项目采用 TensorRT 进行 GPU 算法加速推理。 项目效果 项目细节 > 具体参见项目 README.md (1) 模型转换 python pytorch2onnx.py --cfg ./configs/coco/resnet/256x192_res50_lr1e-3_1x.yaml --chec…

【机器学习300问】74、如何理解深度学习中L2正则化技术?

深度学习过程中,若模型出现了过拟合问题体现为高方差。有两种解决方法: 增加训练样本的数量采用正则化技术 增加训练样本的数量是一种非常可靠的方法,但有时候你没办法获得足够多的训练数据或者获取数据的成本很高,这时候正则化技…

尚硅谷-JavaSE阶段考试与面试题库

一、基础题 1&#xff09;用最有效的的方法算出2称以8等于几 答案&#xff1a;2<<3 2&#xff09;两个对象a和b&#xff0c;请问ab和a.equals(b)有什么区别&#xff1f; ab&#xff1a;比较对象地址 a.equals(b)&#xff1a;如果a对象没有重写过equals方法&#xff0c…

Oracle中的 plsql语法

01-plsql 为什么要plsql 复杂的业务逻辑 可以使用 编程语言实现 sql无法实现 plsql也可以实现复杂的业务逻辑 为不直接使用编程语言 而是学习plsql plsql会比直接使用 编程语言 速度更快 基本语法&#xff1a; [declare --声明变量 变量名 变量类型 ] begin --代码逻辑 …

周鸿祎和雷军、马化腾相逢一笑泯恩仇

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 马云竟然没有到场&#xff0c;真是遗憾! 前两天工信部和互联网协会联合举办的中国互联网三十周年座谈会上。周鸿祎、雷军、马化腾相逢一笑泯恩仇。 第一条视频&#xff1a; 周鸿祎和马化腾握手言欢&#xff0c…

STL Array、ForwardList源码剖析

STL Array、ForwardList源码剖析 参考文章: https://blog.csdn.net/weixin_45389639/article/details/121618243 array 源代码 template<typename _Tp,std::size_t _Nm> struct array {typedef _Tp value_type;typedef _Tp* pointer;typedef value_type* iterator;// Su…

el-upload组件如何上传blob格式的url地址视频

el-upload组件如何上传blob格式的url地址视频 一、存在问题二、直接上代码 需求&#xff1a;想把视频地址url:“blob:http://localhost:8083/65bd3c0f-52ec-4844-b85e-06fdb5095b7b”&#xff0c;通过el-upload组件上传 el-upload是Element UI中用于文件上传的组件&#xff0c;…

霸气归来,AKG N9 Hybrid头戴式降噪耳机震撼发布!手边的“大耳”瞬间不香了?

自1947年Rudolf Grike博士和Ernst Pless先生在“音乐之都”维也纳创立AKG以来&#xff0c;品牌已经走过77载辉煌历程&#xff0c;其产品被广泛应用于全球各大巡回演出和录音棚中&#xff0c;为全球音乐爱好者和专业人士提供了无数优质的声音体验。 近日&#xff0c;AKG再度以王…

ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路

前言 前面的几篇文章讲了很多 JWT 的优点&#xff0c;但作为技术人员都知道&#xff0c;没有一种技术是万能的 “银弹”&#xff0c;所谓有矛就有盾&#xff0c;相比 Session、Cookie 等传统的身份验证方式&#xff0c;JWT 在拥有很多优点的同时&#xff0c;也有着不可忽视的缺…

【矩阵快速幂】太震惊了!直接把斐波那契从6s优化到了0毫秒....

今天我们来学习一个新的专题&#xff0c;「快速幂」技巧。 斐波那契数列 相信大家都不陌生&#xff0c;小学的找规律题目中就经常见到它的身影。 递推表达式为&#xff1a; 根据该表达式&#xff0c;可以很轻松的写出递归版本的代码&#xff1a; public static int f(int n…

【C语言进阶】指针例题大杂烩,阁下是高手还是菜鸟?

前言 首先说明&#xff0c;本文不适合新手&#xff0c;如果你刚刚接触指针&#xff0c;可以看看前五点&#xff0c;这是我认为指针中比较重要的细节&#xff0c;例题部分酌情尝试。 如果你自认为指针学的不错&#xff0c;胸有成竹&#xff0c;请尝试最后的例题&#xff0c;如…

如何用网页绘制一个黑莓9900的键盘效果图

如何用网页绘制一个黑莓9900的键盘效果图 入了几个黑莓蓝牙键盘&#xff0c;出于喜好&#xff0c;想做一个跟实体键盘一模一样的网页界面。 最终的实现效果是这样的&#xff1a; 在线查看&#xff1a;http://kylebing.cn/tools/bb-keyboard 点击上面四个按键显示不同模型界面…