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

2023-10-29

前言

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

代码实现

  1. 导入requests库和BeautifulSoup库:import requestsfrom bs4 import BeautifulSoup。requests库用于发送HTTP请求、获取响应数据,BeautifulSoup库则用于解析HTML数据,提供了方便的HTML DOM结构遍历和搜索的方法。
import requests
from bs4 import BeautifulSoup
  1. 定义get_rank_data()函数,用于爬取排名数据:函数内部首先定义了目标URL:url = 'https://www.shanghairanking.cn/rankings/bcur/2021',用于访问全国高校排名主页面。然后定义了请求头信息:headers = {'User-Agent': '...'},该信息包含了当前访问者的浏览器、操作系统等信息,有助于模拟浏览器对目标站点进行访问。

  2. 使用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)
  1. 解析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')
  1. 提取排名数据: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修改为别的具有相关数据的地址,如各大高校的官网、排名网站等,然后对爬取到的数据进行处理和清洗,以适应你的可视化需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 【Linux】——实现一个简单shell(命令行解释器)

    进程替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序 但有可能执行不同的代码分支 子进程往往要调用一种exec函数以执行另一个程序 当进程调用一种exec函数时 该进程的用户空间代码和数据完全被新程序替换 从新程序的启动例程
  • 数据库SQLite在Qt5+VS2012使用规则总结---中文乱码

    VS2012默认格式为 GB2312 80 而有时我们用到字符串需要显示中文时 就会出现乱码 下面仅就Qt5和VS2012中使用数据库SQLite时 做一个简单的备忘录 1 include
  • Android Studio格式化代码设置和代码风格设置、代码提示键

    自从google大力推出android studio开发android IDE工具之后 最近大家都切换到android studio 但是切换过来之后 各种不顺手 快捷键就是一个大问题 本来在eclipse中用的好好的快捷键 愣是不顺手了
  • Telink BLE MESH开发环境搭建(Windows版本)

    windows系统环境搭建 获取Telink IDE 下载Telink IDE 安装Telink IDE 解压软件包 用管理员权限运行TelinkSDKv1 3 1 exe 如上图安装到C盘 不可安装到其他盘 会报错 打开运行Eclipse
  • 【带你了解C++标准库为何在八大链表结构中选择了它】双向循环带头链表的实质性操作

    文章目录 八大链表结构为何选择了它 初始化和打印 尾插和尾删 头插和头删 查找和插入 删除和销毁 小结 链表功能动画演示 逻辑实现text c 头文件List h 函数实现List c 八大链表结构为何选择了它 C 的STL库选择的最终链表
  • AE已支持M1芯片mac安装(After Effects 20直装版M1安装方法)M1芯片处理器安装AE问题教程

    作为一名视频编辑创作者 一直都是用苹果的Mac电脑运行AE制作影片 就在今年11月份 苹果发布了基于Apple Silicon M1 SoC芯片打造新Mac产品 全新的M1处理器的诞生带来了很多革命性的变化 因为这标志着苹果正式开启了从In
  • Kaptcha实现验证码

    文章目录 依赖 配置类 使用 依赖
  • 华为OD机试 - MELON的难题 - 动态规划(Java 2023 B卷 100分)

    目录 一 题目描述 二 输入描述 三 输出描述 四 动态规划 五 解题思路 六 Java算法源码 七 效果展示 1 输入 2 输出 3 说明 华为OD机试 2023B卷题库疯狂收录中 刷题点这里 一 题目描述 MELON有一堆精美的雨花石
  • van-field输入数字失焦后强制保留两位小数

    van field输入数字失焦后强制保留两位小数 一 html 二 JS部分 1 watch监听 2 强制控制有两位小数 一 html
  • 设计模式浅析-适配器模式

    前言 2017年悄悄的来了 无声无息的以至于我都还没好好缅怀一下荒诞的2016 不得不说 2016没能通过努力达到应该有的程度 看样子目标还是要有的 那就先设定一个小目标吧 设计模式 当你学会了设计模式 就要忘记设计模式 辉哥 适配器模式
  • 华为手机隐藏指令的5个代码

    第一个 拨号键输入 6130 这个指令主要用于查看手机当前的网络信号 手机基本信息以及手机的使用情况数据的统计 尤其是手机使用情况统计数据 可以查看当前手机上次使用了哪些应用 使用的具体时间以及使用的时长 第二个 拨号键输入 2846579
  • MySQL 数据库存储引擎

    目录 一 存储引擎简介 二 MyISAM存储引擎 1 MylSAM介绍 2 MyISAM表支持3种不同的存储格式 3 MylSAM的特点 4 MyISAM使用的生产场景 三 InnoDB存储引擎 1 InnoDB介绍 2 InnoDB的特点
  • ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

    设备直通是一种虚拟化资源分配方式 通过将物理设备直通给虚拟机环境 达到虚拟机可以直接访问物理设备的目的 直通功能对设备的要求不高 不需要设备支持PF VF 目前市面上的显卡 网卡一般都支持直通 典型场景比如有两块显卡 一块主机用 另一块虚拟
  • 前端如何实现浏览器适配?

    1 根据window screen width获取当前浏览器的宽度 然后根据宽度加载不同的样式文件 注意 这里的script一定要写在head标签里面 这样在加载页面的之前 会先把css文件加载出来 2 媒体查询 根据设备显示器的特性为其设
  • python 根据索引取值_Python 从列表中取值和取索引的方法

    如下所示 name list zhangsan lisi wangwu 1 取值 print name list 0 print name list 1 print name list 2 2 取索引 print name list ind
  • 北京市经济和信息化局:鼓励布局区块链算力中心

    近日 北京市经济和信息化局印发 北京市数据中心统筹发展实施方案 2021 2023年 的通知 方案提出 鼓励布局人工智能 区块链算力中心 推动形成 4000PFlops 即每秒 4 百亿亿次浮点运算 总算力规模的人工智能公共算力基础设施 重
  • GEN 自动生成 GORM 模型结构体文件及使用示例

    GEN 自动生成 GORM 模型结构体文件及使用示例 背景 GEN 是一个基于 GORM 的安全 ORM 框架 由字节跳动无恒实验室与 GORM 作者联合研发 主要功能说白了就是帮助生成数据表对应的模型文件和更安全方便地执行SQL 直接使用
  • 短链服务架构实践

    1 存储采用REDIS做数据存储 2 id keyword gt long url hset key long url id keyword long url 3 md5 long url gt id keyword hset key sh
  • 队列的实际应用和操作(顺序表)

    题目 利用队列求解报数问题 设有n个人站成一排 从左向右的编号分别为1 n 现在从左往右报数 1 2 1 2 数到 1 的人出列 数到 2 的立即站到队伍的最右端 报数过程反复进行 直到n个人都出列为止 要求给出他们的出列顺序 头文件SqQ
  • 内附源码!使用Python和requests库轻松爬取全国高校排名

    目录 前言 代码实现 总结 前言 中国的大学排名数据比较分散 一些权威机构会发布综合排名 如教育部的 双一流 985 211 计划 还有一些机构会发布专业排名等 因此 具体爬取哪些排名数据可能需要根据实际需要来进行筛选 代码实现 导入req