Python爬取软科排名,及总结

Python爬取软科中国大学排名2020版网页 Python爬取软科中国大学排名2020版网页 问题起因: 复习爬虫时发现之前代码爬取的软科中国大学排名网站页面变了,原来的爬虫就不能再使用了,所以我对爬虫进行了更新,使之恢复可用状态,并增加了写入Excel表格部分 目标页面: 软科——中国大学排名http://www.shanghairanking.cn/rankings/bcur/2020 爬虫方法设计: 方法: (1)页面获取方法:getHTMLText(url) (2)页面解读方法:fillUnivList(ulist,html) (3)效果打印方 阅读详情

代码

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import time


def initialize_driver(driver_path):
    """初始化 Selenium Edge 驱动"""
    service = Service(driver_path)
    driver = webdriver.Edge(service=service)
    return driver


def fetch_page_data(driver):
    """从当前页面抓取数据"""
    rows = driver.find_elements(By.CSS_SELECTOR, "tr")
    page_data = []

    for row in rows[1:]:  # 跳过表头
        cols = row.find_elements(By.TAG_NAME, "td")
        if len(cols) >= 5:
            data = [
                cols[0].text.strip(),  # 排名
                cols[1].text.strip(),  # 学校名称
                cols[2].text.strip(),  # 国家/地区
                cols[3].text.strip(),  # 国家/地区排名
                cols[4].text.strip(),  # 总分
                cols[5].text.strip()  # 校友会

            ]
            page_data.append(data)

    return page_data


def get_total_pages(driver):
    """动态获取总页数"""
    pagination = driver.find_elements(By.CSS_SELECTOR, "a.ant-pagination-item")
    if pagination:
        return int(pagination[-1].text.strip())  # 获取分页最后一个数字为总页数
    return 1


def navigate_and_scrape_data(driver, base_url):
    """导航至每一页并抓取数据"""
    driver.get(base_url)
    all_data = [["排名", "学校名称", "省市", "学校类型", "总分", "校友获奖"]]

    wait = WebDriverWait(driver, 10)
    wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "ul.ant-pagination")))

    # 动态获取总页数
    total_pages = 34
    print(f"Total pages: {total_pages}")

    for page in range(1, total_pages + 1):
        print(f"Fetching data from page {page}")
        page_data = fetch_page_data(driver)
        all_data.extend(page_data)

        # 点击下一页按钮
        if page < total_pages:
            next_button = driver.find_element(By.CSS_SELECTOR, "li.ant-pagination-next")

            # 确认按钮未被禁用
            if "ant-pagination-disabled" not in next_button.get_attribute("class"):
                next_button.click()
                time.sleep(2)  # 等待新页面加载
            else:
                print("Next button is disabled.")
                break

    return all_data


def save_to_csv(data, filename):
    """将数据保存到 CSV 文件"""
    pd.DataFrame(data).to_csv(filename, index=False, header=False, encoding='utf-8-sig')


if __name__ == "__main__":
    edge_driver_path = r'C:\Program Files (x86)\Microsoft\Edge\edgedriver_win64\msedgedriver.exe'
    driver = initialize_driver(edge_driver_path)

    base_url = "https://www.shanghairanking.cn/rankings/arwu/2024"
    all_data = navigate_and_scrape_data(driver, base_url)

    print(all_data)
    save_to_csv(all_data, "./college.csv")
    driver.quit()

分析

我们首先是tr去检索行,td去检索所有列

然后依次页面读取获取并保存即可

注意

本代码的动态获取页码的部分是获取不到的,实际上只能自己手动修改总页码,但是总体达成的爬取效果还是一致的

使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析 使用Python爬取“最好大学网”软科中国最好大学排名2019并做可视化分析简介开发环境爬取数据1.获取网站页面2.解析网页内容3.存储数据可视化分析基本设置显示评分排名前十的大学各地区大学比例 简介 软科中国最好大学排名2019 图一 网站格式如上,我们主要爬取排名、学校名称、省市、总分4个数据。并做可视化分析。 开发环境 Python 3.7 PyCharm 用到的Python库 c... 阅读详情

相关推荐

Python爬虫入门零门槛!30分钟爬取软科中国大学排名,生成交互式可视化排名表

本文介绍了一个适合Python初学者的爬虫实战项目——爬取软科中国大学排名数据并生成交互式可视化排名表。项目特点包括:目标网站反爬弱(仅需设置User-Agent)、代码清晰(使用requests+BeautifulSoup4基础库)、数据实用(包含学校名称、排名、省份、总分等关键信息)、成果可视化(生成可交互的HTML表格)。 主要内容包括: 环境准备:安装requests、BeautifulSoup4、pandas和plotly.express库 目标分析:解析网页结构,定位关键数据所在HTML标签 实

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1126

python 大学排行网站全部排行数据

中国大学排名,中国两岸四地排名,全球体育类院系大学排行,世界大学学术排名 中国最好学科排名,中国大学专业排名,世界一流学科排名

weixin_66397563的博客 2213

Python爬虫零基础入门:30分钟爬取软科中国大学排名,新手复制粘贴就能跑

很多想学爬虫的新手都卡在了第一步:要么教程太复杂,满屏看不懂的专业术语;要么选的网站反爬太严,代码写了半天全是403错误;要么爬下来的数据乱七八糟,根本没法用。零门槛:只需要会复制粘贴,不需要任何编程基础零失败:软科中国大学排名网站反爬极弱,几乎不会被拦截见效快:30分钟就能看到完整的Excel表格结果实用性强:爬下来的排名数据可以用来择校、做分析、写报告跟着本文一步步做,保证你第一次写爬虫就能成功。爬虫只是获取公开数据的工具,一定要在合法合规的范围内使用遵守网站的robots.txt协议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2559

Python 爬取软科大学排名代码指南

软科(ShanghaiRanking)是一个全球知名的大学排名机构,每年都会发布不同领域的大学排名。如果你想获取这些排名数据并进行分析,Python 是一个非常强大的工具。本文将详细介绍如何使用 Python 爬取软科大学排名的数据,包括思路梳理和详细步骤。打开目标网页,使用浏览器的开发者工具检查网页源代码,找到包含大学排名信息的HTML标签。通过以上步骤,你可以成功爬取软科大学排名的数据,并进行后续的分析和处理。如果你正在学习Python,那么你需要的话可以,点击这里。首先,确保你已经安装了。

2301_78150559的博客 1262

Python爬虫实战:获取软科网最新特定专业大学排名数据并做分析,为高考填报志愿做参考

通过 Scrapy 框架爬取软科网的数据,并结合数据分析和机器学习技术进行深入剖析,能够揭示数据背后的潜在规律和价值,为高考志愿填报提供科学、可靠的参考。考生可以依据大学的名次、总分、层次等关键信息,结合自身的高考成绩、兴趣爱好和职业规划,合理选择报考的大学和专业,提高志愿填报的科学性和准确性。同时,在进行数据分析和机器学习时,要根据具体需求和数据特点,选择合适的算法和模型,以提高分析结果的准确性和可靠性。针对不同层次的大学,提供个性化的学习建议、发展规划和升学路径指导,以满足考生和家长多样化的需求。

ylfhpy的博客 1247

跟着团子学SAP EPPM:项目管理常见的集成场景(PPM\PS\MS Project)

在SAP的EPPM解决方案中,针对企业战略级别的投资组合管理首先是定义合适的投资组合的层级结构,在投资组合下可以通过不同维度去定义投资篮(Portofolio Bucket)进行层层拆分,在最下层级的投资篮下可以分配明细的投资项(Portofolio Item),投资项可以是独立的一个一个具体执行的项目,也可以是单纯的一次服务等等。 今天主要聚焦在投资项的维度展开讲一下在SAP中投资项常见的几种集成模式: 集成场景1:使用PPM中的Project Management进行项目管理 第一个场景是在创建投资项

Lucas1211的博客 4139

软科中国大学排名爬虫+数据可视化

软科中国大学排名爬虫+数据可视化 代码,可视化图片分享

m0_73744583的博客 1944

利用CANoe和CAPL实现高效CAN网关设计与仿真

本文详细介绍了如何利用CANoe和CAPL进行高效CAN网关的设计与仿真。通过搭建仿真工程、导入DBC数据库、编写CAPL脚本等步骤,手把手指导读者构建一个连接不同CAN网络的网关模型,实现报文的监听、转发与信号处理,从而在硬件开发前验证逻辑,提升汽车电子开发效率与可靠性。

weixin_29164091的博客 294

Python爬虫入门之2022软科中国大学排名爬取保存到csv文件

“2022软科中国大学排名”为数据建立建立1-10名和11-20名的两个csv文件,并对两个文件进行合并,转化格式等操作。获得“2022软科中国大学排名”数据,从https://www.shanghairanking.cn/rankings/bcur/2022网页中获得排名数据信息,并将数据保存到csv文件中。 2、调用两个CSV文件,将他们合成一个文件,并按排名先后对其进行排序 3、将合并文件储存为txt文件和json文件

qq_63524458的博客 9441

RFSoC应用XCZU47DR八发八收FPGA设计方案

本文介绍了基于Xilinx XCZU47DR RFSoC芯片的八发八收FPGA设计方案。该方案采用集成射频数据转换器的SoC架构,支持8路14bit ADC(5GSPS)和8路14bit DAC(9.85GSPS),可直接处理5GHz以下射频信号。硬件设计包含高性能输入缓冲器、QMC校正和复杂混频器,适用于5G/6G通信、雷达、卫星通信等领域。文章详细阐述了ADC/DAC子系统参数,包括通道配置、采样率、带宽等特性,并提供了FPGA顶层模块的硬件接口设计,展示了多通道数据收发处理能力。该方案无需外置混频器,

toonyhe的博客 1782

实战解析:基于Python的APT攻击检测与ATT&CK框架应用

本文通过实战案例,详细解析了如何利用Python编程语言结合MITRE ATT&CK框架,构建一套针对高级持续性威胁(APT)的自动化检测与狩猎系统。文章涵盖了从环境搭建、核心检测逻辑编写、到模块化框架设计与主动威胁狩猎的全过程,为安全从业者提供了可落地的技术方案,以有效应对复杂的网络攻击。

weixin_29044157的博客 388

2021软科中国大学排名(Python抓取前200名)

2021软科中国大学排名(Python抓取)   由于软科官网使用动态渲染技术,将数据封装在js文件中,导致无法直接抓取所有的排名记录。用普通的请求方式只能抓取到前30条记录。虽然也可以通过自动化测试工具selenium模拟浏览器行为把数据提取出来,但毕竟繁琐。本文通过拿到网页js文件,然后通过正则表达式提取出排名信息的方式,将所有大学排名抓取出来。具体步骤如下:   (1)右键点击检查(Chrome),来到控制面板,点击network,找到payload.js,双击找到请求头headers,便可以找到请求

qq_41912858的博客 7585

详述字符集与汉字编码

字符集与字符编码是文本处理的基础概念。字符集定义字符集合(如ASCII、GB2312、Unicode),字符编码则规定字符如何存储为二进制数据。汉字编码经历了从区域化(GB2312、GBK、BIG5)到全球化(Unicode)的演进,Unicode通过UTF-8、UTF-16等编码方案实现跨语言兼容。UTF-8因兼容ASCII、节省空间且无乱码风险,成为中文互联网的主流编码。正确处理编码问题需统一标准、明确声明格式,并注意生僻字的特殊处理。

零零发不爱ai的博客 805

Python爬虫练习:爬取软科世界大学学术排名

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于云边镇 ,作者花花 前言 软科世界大学学术排名(ShanghaiRanking’s Academic Ranking of World Universities,简称ARWU)于2003年由上海交通大学世界一流大学研究中心首次发布,是世界范围内首个综合性的全球大学排名。2009年开始由软科发布并保留所有权利。软科世界大学学术排名是全球最具影响力和权威性的大学排名之一.

Python案例分享,B站视频教程:https://space.bilibili.com/523606542 3208

基于深度学习的野生菌菇检测识别分类系统(YOLOv8 + UI界面 + 数据集)

随着深度学习技术的迅猛发展,计算机视觉领域的应用得到了广泛的关注。野生菌菇的检测与识别是一个复杂而又有趣的问题,涉及到物体检测、图像分类以及自然语言处理等技术。本文将介绍如何基于YOLOv8模型,结合自定义UI界面与数据集,构建一个高效且精确的野生菌菇检测识别分类系统。首先,我们将介绍YOLOv8的原理与特点,然后详细描述如何构建和训练野生菌菇识别模型,并介绍如何为该系统设计UI界面,最终形成一个完整的系统。本文内容包括代码实现、模型训练及数据集准备等,旨在为有类似需求的开发者提供参考和帮助。目录摘要目录。

YOLO 1546

面向 ABAP 开发者的 Joule 实战:把 AI 带进 Eclipse 的每一次敲键

本文介绍了SAP推出的ABAP开发AI工具套件Joule for developers,重点解析了其代码补全、自然语言对话、代码解释、测试生成等功能如何融入ABAP Cloud开发全流程。文章提供了具体的使用场景和操作示例,包括RAP应用开发中的建模辅助、代码理解、测试生成等环节,并分享了实用的提示词模板。同时强调了启用授权等实施细节,帮助开发者将AI能力转化为实际生产力而非演示效果。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 460

Python爬虫入门实例三之爬取软科中国大学排名

本篇为python爬虫入门简单实例,通过对软科网站上大学排名的爬取,帮助小伙伴们排一些坑,同时更好的理解定向爬取的含义及format格式化输出的使用。

Mr.Q_LuLu的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

《Python正则--爬取上海软科大学排名全解析(附源码)》

本段代码使用python正则获取上海软科大学排名的全部数据信息,通过对大学信息加载的JS文件进行数据处理得到全部详细数据。

NiJiMingCheng的博客 1233

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python爬虫,爬取2020年软科中国大学排名并进行数据清洗与可视化输出

使用python对【软科-高等教育评价领先品牌 https://www.shanghairanking.cn/rankings/bcur/2020】进行爬取,然后存到sql数据库中(也有excel的代码),并且进行分析,获得每个省份的大学的种类的分布图。

drbingibng的博客 3976

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python:爬取软科排名的历年所有数据

import traceback from selenium import webdriver from selenium.webdriver.common.by import By from selenium.common import exceptions import time import xlsxwriter import os class ShangHaiRanking: __SHANGHAIRANKING_ROOT = './shranking' indicator_list

include的博客 2204

python爬虫,爬取软科大学排名

from bs4 import BeautifulSoup import requests import bs4 def gethtml(): url="http://www.cuaa.net/paihang/news/news.jsp?information_id=137445" try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding .

weixin_50489414的博客 696

《Python 爬取上海软科中国大学排名并存入表格:详解与速通指南》

通过本文介绍的 Python 爬虫程序,我们可以方便地从网页上抓取大学排名数据,并将其保存为常用的 Excel 和 CSV 格式,便于后续的数据处理和分析。在实际应用中,还可以根据需要对代码进行进一步的优化和扩展,例如增加数据清洗、处理更多的网页元素等功能,以满足更复杂的需求。希望本文能够帮助读者掌握 Python 爬虫在数据获取方面的基本应用技巧。

NiJiMingCheng的博客 2958

使用python中的requests爬取软科大学排名并存储在本地MySql数据库

使用python的requests和lxml库来实现爬虫功能 使用requerts和lxml来连接到网页并且获取到网页内容,requests用来连接网页。lxml用来解析格式。然后把需要的获取的东西 比如软科排名里的 大学名称、logo、英文名称、描述爬取下来并且放在自己本地的MySql数据库里 先使用MySql建立好数据库,我用的5.7版本 下面是我成功添加到数据库的内容 下面是我查询的内容 下面是主函数。 import Sprider as sr from MySQlDBHelper import

阿飞的博客 1126

Python定向爬虫实例:中国大学排名爬虫

昨天学到北理工开设的《Python网络爬虫与信息提取》的“中国大学排名”实例,总结编写实例过程中遇到的一些问题。 url 视频中代码给出的网址是: http://www.zuihaodaxue.cn/zuihaodaxuepaiming2016.html 但是编写过程中发现该url已不可用,该网站已改名为软科 要用新的url进行编程: 【软科排名】2021年最新软科中国大学排名|中国最好大学排名 TypeError: unsupported format string passed t..

qdabuliuq的博客 7323

【Python大数据】近8年软科中国大学排名数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学

【Python大数据】近8年软科中国大学排名数据可视化分析系统、Hadoop、计算机毕业设计、包括数据爬取、数据分析、数据可视化、机器学习、实战教学

卫星:biyesheji88的博客 851
上一篇: Python爬虫泰晤士2024排名,以及问题总结
PRATICKSTAR
博客等级 码龄5年 1321粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值