内附源码!使用Python和requests库轻松爬取全国高校排名 您所在的位置:网站首页 python爬取百度文库脚本 内附源码!使用Python和requests库轻松爬取全国高校排名

内附源码!使用Python和requests库轻松爬取全国高校排名

2023-06-04 05:10| 来源: 网络整理| 查看: 265

目录 前言代码实现总结

前言

中国的大学排名数据比较分散,一些权威机构会发布综合排名,如教育部的“双一流”、“985”、“211”计划,还有一些机构会发布专业排名等。因此,具体爬取哪些排名数据可能需要根据实际需要来进行筛选。

代码实现 导入requests库和BeautifulSoup库:import requests和from bs4 import BeautifulSoup。requests库用于发送HTTP请求、获取响应数据,BeautifulSoup库则用于解析HTML数据,提供了方便的HTML DOM结构遍历和搜索的方法。 import requests from bs4 import BeautifulSoup

定义get_rank_data()函数,用于爬取排名数据:函数内部首先定义了目标URL:url = 'https://www.shanghairanking.cn/rankings/bcur/2021',用于访问全国高校排名主页面。然后定义了请求头信息:headers = {'User-Agent': '...'},该信息包含了当前访问者的浏览器、操作系统等信息,有助于模拟浏览器对目标站点进行访问。

使用requests库发送HTTP请求:response = requests.get(url, headers=headers),requests.get()方法向目标URL发送了一条GET请求,同时传入了请求头信息,返回的响应数据保存在response对象中。

# 发送HTTP请求并获取响应数据 def get_rank_data(): url = 'https://www.shanghairanking.cn/rankings/bcur/2021' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) 解析HTML数据:使用BeautifulSoup库对响应数据进行解析:soup = BeautifulSoup(response.text, 'html.parser'),response对象的text属性包含了获取到的HTML文本数据,将其传入BeautifulSoup()构造函数中,返回一个BeautifulSoup对象。接着,使用该对象的find()和find_all()方法轻松定位和提取目标元素。 # 解析HTML数据 soup = BeautifulSoup(response.text, 'html.parser') tbody = soup.find('tbody') trs = tbody.find_all('tr') 提取排名数据:tbody = soup.find('tbody')和trs = tbody.find_all('tr'),分别使用find()和find_all()方法定位到排名数据所在的HTML元素,在这里是table的tbody和tr元素。然后遍历所有的tr元素,使用find_all()方法提取每个tr元素下的td元素,并使用get_text()方法获取元素中的文本内容。将排名数据存入一个列表中,使用字典的形式保存:rank_data.append({'rank': rank, 'name': name, 'location': location, 'category': category})。 # 提取排名数据 rank_data = [] for tr in trs: tds = tr.find_all('td') if tds: rank = tds[0].get_text() name = tds[1].get_text() location = tds[2].get_text() category = tds[3].get_text() rank_data.append({'rank': rank, 'name': name, 'location': location, 'category': category}) return rank_data if __name__ == '__main__': rank_data = get_rank_data() for data in rank_data: print(f'{data["rank"]}: {data["name"]} ({data["location"]}) - {data["category"]}') 总结

上述代码使用了第三方库requests和BeautifulSoup,首先访问了教育部网站中“双一流”高校名单所在的页面,然后使用BeautifulSoup解析HTML页面中的表格数据(表格的HTML结构可能会随着页面结构的变化而变化),最后将数据以元组的形式存入了results列表中。

哈哈哈哈哈哈哈,人工智能果然牛批

可以将代码中的url修改为别的具有相关数据的地址,如各大高校的官网、排名网站等,然后对爬取到的数据进行处理和清洗,以适应你的可视化需求。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有