python爬取世界大学排名 爬虫 | Python搞定软科中国大学排名
来源:国际学校信息网
时间:2025-06-23 12:42:01
本文目录一览:
- 1、爬虫 | Python搞定软科中国大学排名|爬虫 | Python搞定软科中国大学排名| Python搞定软科中国大学排名
- 2、现在的世界大学排名中,哪种排名的可信度相对较高?
- 3、爬虫 | Python搞定软科中国大学排名
爬虫 | Python搞定软科中国大学排名
大家好,我是【Python当打之年】近期很多粉丝询问如何通过Python进行软科中国大学排名的爬虫分析,本期就为大家详细解析这一过程,希望对大家有所帮助,以下内容仅供参考,请勿用于其他用途。
目标网址为:shanghairanking.cn/rank...
2023年的中国大学排名共有590所学校。
1. 网页分析
每页展示30所学校信息,共20页。通过翻页发现网址并未发生变化,说明页面信息是通过动态加载的方式展示的,因此无法通过get传参的方式切换网页进行爬取。通过按F12或右键选择审查元素,搜索清华大学查看网页结构,可以看到信息存储在payload.js文件中。继续分析该文件,可以发现这里有590所学校的所有信息,说明网页显示的内容是通过javascript解析这个文件动态加载进去的,因此我们只需要解析这个文件即可。
2. 解析js文件
查看学校的具体字段信息,文件内容格式不规则,既有类似json格式的信息,也有JavaScript的语法,因此不能直接使用json进行解析,这里我们使用re正则提取。
生成Dataframe,信息齐全,但其中包含很多a,f,e,q,[i,l,j],ei,eg,ek...等字符信息,这些应该是某些信息的替代字符,类似于函数中的形参。
继续分析payload.js文件的开头部分,补充知识:NUXT_JSONP是JavaScript中的一个全局变量,在使用uxtjs架构时会自动生成,用于在客户端渲染(CSR)模式下获取服务器端渲染(SSR)的数据。在Nuxt.is的客户端渲染模式下,NUXT_JSONP变量的值是一个函数,用于将服务器端渲染的数据注入到客户端渲染的页面中。这个函数的参数是服务器端渲染的数据,返回值是将这些数据注入到页面中的代码。因此,__NUXT_JSONP__变量的类型是一个函数,可以看出现有的function和return就是内层函数(存在函数嵌套)及其返回值,那么(a,b,c,d...ps,pt,pu,pv)就是函数的参数。
文件的结尾部分,这里就是外层函数的参数,仔细对比会发现外层函数的参数和上面内层函数的参数是一一对应的,因此进行字典映射即可。
3. 变量替换
获取实际值,结果如下,保存表格数据。
4. 可视化源码+数据:
在线运行地址(含全部代码):heywhale.com/mw/project...
以上就是本期为大家整理的全部内容,赶快动手练习吧,喜欢的朋友可以点赞、收藏,也可以分享让更多人知道。更多内容敬请关注(公众号:Python当打之年)
推荐阅读:
现在的世界大学排名中,哪种排名的可信度相对较高?
在现今的世界大学排名中,寻找相对较高的可信度成为了一项挑战。不同排名体系侧重点各异,导致了排名结果的显著差异。其中,QS排名因其商业化倾向,可信度相对较低。为了全面、客观、合理地评估每所大学的相对优势,结合不同排名的指标进行加权平均是一个有效策略。本文将探讨如何通过综合分析六大最具影响力的排名,以及一个基于期刊论文、专利等客观指标的学术排名,来为世界顶尖大学提供更公正的评价。本次分析利用Python爬取了五大排名(Usnews、THE、QS、ARWU、CWUR)和一个学术排名(SCImago)的数据,同时考虑了一个100%依赖客观科研产出的指标体系。这些排名涵盖了学术能力、教育质量、学校声誉等多个维度,为全面评估大学提供了丰富的信息。
在爬取数据后,我们筛选出了至少在六个排名中同时上榜的大学,并进行加权平均处理。对于缺失数据(NaN)的大学,我们采取了修正策略,通过评估其在其他排名中的表现,为NaN数据引入了修正量,以确保排名的公正性。这种修正方式不仅考虑了大学在其他排名中的相对位置,还平衡了NaN数量对排名的潜在影响。
通过对横扫六榜、六榜有五、六榜有四的大学进行比较分析,我们发现QS排名与其他排名在数据分布上存在显著差异,这可能与QS排名体系的特定评价标准和算法有关。此外,对于NaN数量较多的大学,如QS排名中的许多高校,其排名优势在修正后的排名体系中被显著削弱,这表明QS排名在处理缺失数据时可能存在不足。
针对不同排名体系的相对可靠性,我们可以从NaN数量、修正量等指标进行量化分析。结果显示,ARWU和SCImago排名在NaN处理上较为特殊,因此在综合考虑时适当调整了权重。总体来看,各排名的可靠性呈现出一定的排序趋势,但不能简单地认为NaN数量少的排名更合理。关键在于,需要在不同层级内对大学进行细分排名,以反映其在特定领域的竞争优势。
在学术排名方面,考虑到不同排名体系对学术产出的评价重点不同,我们通过加权平均和修正策略,得到了一组较为综合的学术能力排名。对于一些关键指标,如ARWU的诺贝尔奖获奖人数和SCImago的期刊论文数量,我们注意到它们在评价大学时可能存在一定的局限性,比如过分强调历史传统或特定学科的重要性。
最后,我们对大学在科研实力、教育水平和声誉影响等方面的排名进行了综合分析,并对排名结果进行了层次划分,提供了从顶级到一般大学的概览。这一分析不仅有助于理解不同大学在各指标下的相对优势,也为学术研究者、教育决策者和学生提供了有价值的参考信息。
爬虫 | Python搞定软科中国大学排名
使用Python进行软科中国大学排名爬虫的步骤如下 :

-
网页分析 :
- 目标网址展示的是动态加载的内容,无法通过简单的get请求切换网页进行爬取。
- 通过分析网页结构,发现所需信息存储在payload.js文件中,该文件包含590所学校的所有信息。
-
解析payload.js文件 :

- 文件内容格式不规则,包含类似json格式的信息和JavaScript语法,因此使用正则表达式进行提取。
- 解析后生成Dataframe,但包含许多替代字符,这些字符需要进一步处理。
-
处理替代字符 :
- 分析payload.js文件的开头和结尾部分,理解__NUXT_JSONP__变量的作用,它是用于在客户端渲染模式下获取服务器端渲染的数据。
- 对比内外层函数的参数,进行字典映射,将替代字符替换为实际值。
-
保存数据 :

- 将处理后的数据保存为表格格式,以便后续分析和可视化。
-
可视化源码和数据 :
- 可以使用在线平台运行代码,进行数据的可视化和分析。
注意事项 : 在进行爬虫操作时,请遵守目标网站的robots.txt协议和相关法律法规。 爬虫行为可能会对目标网站造成负担,因此请合理控制请求频率和数量。 解析复杂网页结构时,可能需要深入了解网页的渲染机制和JavaScript代码。
以上就是国际学校信息网整理的python爬取世界大学排名 爬虫 | Python搞定软科中国大学排名相关内容,想要了解更多信息,敬请查阅国际学校信息网。免责声明:文章内容来自网络,如有侵权请及时联系删除,联系邮箱:3789926014@qq.com






宁波市镇海蛟川双语小学
宁波国际学校
上海中学国际部
铁岭枫树岭国际学校
天津英华国际学校
石家庄康福外国语学校
六力国际学校
河北联邦国际学校国际部
杭州市实验外国语学校