Python爬虫学习过程中遇到的AttributeError: ‘NoneType’ object has no attribute 'children’问题解决
在中国大学MOOC网上学习Python网络爬虫与信息提取时,运行嵩天老师的中国大学排名定向爬虫实例代码A时遇到了AttributeError: ‘NoneType’ object has no attribute 'children’的问题,通过百度检索到相关的文章并成功解决问题。
由于我的代码并未出现该文章中提到的timeoout=30的错误,在阅读文章下方的评论后,我发现我的代码中url的开头为https,尝试改为http后解决问题,输出大学排名的爬取结果。
在此冒昧引用该文章里的两段话,对以后的编程有很好的启示作用,若有侵权问题会立即删除。
属性错误:‘NoneType’ 对象没有属性 ‘children’ ,这个错误提示告诉我们 ‘children’ 属性的对象 soup 是一个空类型,那就意味着soup = BeautifulSoup(html,‘html.parser’)中soup并没有得到解析出来的html页面,那就是说在调用getHTMLText(url)函数时这个函数并没有得到url链接对应的网页信息。所以错误可能出现在getHTMLText(url)函数中,然后仔细审查getHTMLText(url)函数中代码发现单词打错。
总之:这四个函数之间各有分工,但是又紧密相连,任何一个出现问题都可能导致其它函数报错,所以我们找错时不能只局限于报错的那一行代码
————————————————
版权声明:本文为优快云博主「爱搬砖的小迷糊」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_36525166/article/details/81216848
#CrawUnivRankingA.py
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url, timeout