python爬虫小案例 您所在的位置:网站首页 前30所大学 python爬虫小案例

python爬虫小案例

2024-06-25 14:55| 来源: 网络整理| 查看: 265

加上这一篇,我已经有三篇都是写 ”中国大学排名的爬取“小案例了,那我为什么又写一遍呢?还不是之前的代码不能成功爬取数据了。

那我怎么知道的呢?有网友反馈说,运行代码返回 None

我运行了一下,还真是:

可参考下列步骤,可以成功爬取到你想要的数据

1、进入 网址 ,可参考的下面的步骤,找到这些信息存储的地方:

2、在浏览器输入网址 :https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2020

3、找出我们需要的信息,以 清华大学为例子

4、接下来就是开写代码了,可参考下面的代码:

import json import requests def getHTMLText(url): '''从网络上获取大学排名网页内容''' try: r = requests.get(url, timeout=40) # #如果状态不是200,就会引发HTTPError异常 r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return "" def printUnivList(ulist, html,num): '''提取 html 网页内容中 前 num 名大学信息到 ulist列表中 ''' data = json.loads(html) #对数据进行解码 # 提取 数据 rankings 包含的内容 content = data['data']['rankings'] # 把 学校的相关信息放到 ulist 里面 for i in range(num): index = content[i]['rankOverall'] name = content[i]['univNameCn'] score = content[i]['score'] category = content[i]['univCategory'] ulist.append([index, name, score,category]) # 打印前 num 名的大学 tplt ="{0:^10}\t{1:{3}^10}\t{2:^10}\t{4:^10}" # {1:{3}^10} 中的 {3} 代表取第三个参数 print(tplt.format("排名 ","学校名称","总分",chr(12288),"类型")) # chr(12288) 代表中文空格 for i in range(num): u=ulist[i] print(tplt.format(u[0],u[1],u[2],chr(12288),u[3])) # chr(12288) 代表中文空格 def main(): uinfo = [] url = 'https://www.shanghairanking.cn/api/pub/v1/bcur?bcur_type=11&year=2020' html = getHTMLText(url)# 获取大学排名内容 printUnivList(uinfo, html, 30)#输出 排名前30 的大学内容 main()

5、运行以上代码,就可以爬取到我么想要的内容了

本文若有不妥的地方,望指出,谢谢。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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