中国大学mooc 嵩天python爬虫实例 获取中国最好大学排名2020——解决数据获取为none的情况

本文介绍了如何通过Python爬虫获取2020年中国最好大学排名前20的学校信息。针对网页结构变化和'NoneType'对象错误,提出了解决方案,包括调整HTML标签解析方式和处理空行问题,以正确提取学校名称等数据。
摘要由CSDN通过智能技术生成

获取中国最好大学排名2020

一、要求

爬取最好大学网上排名前20的学校,以表格形式输出,包括(排名,学校名称,总分)。
由于mooc的学习视频为早期,现在的最好大学网已经更改相关网址为网页链接:https://www.shanghairanking.cn/rankings/bcur/2020
具体的代码和优化在课程中都有给到,以下是我对于遇到没有办法读取问题进行的修改。

二、问题解决

2.1 获取学校名称时html的标签名变化为不再直接

在这里插入图片描述
在获取中添加代码:

 aa = tds[1].find("a").text.strip() # 因为大学名字在td标签的子标签a中,所以需要单独提取
2.2 AttributeError: ‘NoneType’ object has no attribute ‘strip’

tag.stringtag.text区别
当我在其他博客中学习2020修改网站后的爬取代码时,出现了这个问题。问题主要出现在fillunivlist()函数中:
因为老师的方法是直接用tag.string获取标签里的内容信息,但是从网站源代码中可以看到,每个内容前是由换行回车的,这就导致直接由string获取的情况会获取到空行,即保存到列表中的数据为none,而改用tag.text就可以获取到所有的信息,再用strip()方法去除掉前后空格就可以直接获取到文字部分的信息了。出现标题的bug是因为用string获取的内容为none所以自然再用strip()会报错。效果展示如下:
在这里插入图片描述

三、实例代码

import requests
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值