0
点赞
收藏
分享

微信扫一扫

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

Android开发指南 2024-05-01 阅读 7

前言

本文介绍了如何使用 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=

文件内容: 文件内容

举报

相关推荐

0 条评论