1 Star 0 Fork 0

黄昕怡/数据采集与融合

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
实践作业23.py 1.54 KB
一键复制 编辑 原始数据 按行查看 历史
黄昕怡 提交于 2024-10-15 15:46 +08:00 . 作业2
#爬取中国大学 2021 主榜
#(https://www.shanghairanking.cn/rankings/bcur/2021)
#所有院校信息,并存储在数据库中,同时将浏览器 F12 调试分析的过程录制 Gif 加入至博客中。
import requests
import pandas as pd
import re
url = "https://www.shanghairanking.cn/_nuxt/static/1728872418/rankings/bcur/2021/payload.js"
resquest = requests.get(url=url)
name = re.findall(',univNameCn:"(.*?)",',resquest.text)#获取学校名称
score = re.findall(',score:(.*?),',resquest.text)#获取学校总分
category = re.findall(',univCategory:(.*?),',resquest.text)#获取学校类型
province = re.findall(',province:(.*?),',resquest.text)#获取学校所在省份
code_name = re.findall('function(.*?){',resquest.text)
start_code = code_name[0].find('a')
end_code = code_name[0].find('pE')
code_name = code_name[0][start_code:end_code].split(',')#将function中的参数取出并存在code_name列表中
value_name = re.findall('mutations:(.*?);',resquest.text)
start_value = value_name[0].find('(')
end_value = value_name[0].find(')')
value_name = value_name[0][start_value+1:end_value].split(",") #将参数所对应的含义取出存在value_name列表中
df = pd.DataFrame(columns=["排名","学校","省份","类型","总分"])
for i in range(len(name)):
province_name = value_name[code_name.index(province[i])][1:-1]
category_name = value_name[code_name.index(category[i])][1:-1]
df.loc[i] = [i+1,name[i],province_name,category_name,score[i]]
print(df)
df.to_excel("test3_school.xlsx")
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fufubuff/data-collection-and-fusion.git
git@gitee.com:fufubuff/data-collection-and-fusion.git
fufubuff
data-collection-and-fusion
数据采集与融合
master

搜索帮助