beautifulsoup - python抓取错误AttributeError:'NoneType'对象没有属性'text'
问题描述
我正在用漂亮的汤做python抓取,我正在抓取的网站有一个带有标题、链接和文本的28个容器,文本在<p>
标签中,我的问题是我可以抓取所有数据但有些<p>
标签没有文本,所以我收到"AttributeError: 'NoneType' object has no attribute 'text'"
我的代码有一个错误
:
containers = page_soup.findAll("div", {"class":"item-container"})
for contain in containers:
title = contain.div.a.h3.text
print("title: "+title)
link = contain.div.a["href"]
print("source: "+link)
des = contain.div.p.text
print("Description: "+des)
它打印 5 次<p>
标签文本,因为并非所有<p>
标签都有文本,但它给了我错误,如何解决这个问题?
解决方案
您可以尝试如下完成任务:
for contain in page_soup.find_all("div", {"class":"item-container"}):
title = contain.div.a.h3.text
link = contain.div.a["href"]
try:
des = contain.div.p.text
except:
des = ""
print("title: {}\nlink: {}\ndescription: {}\n".format(title,link,des))
推荐阅读
- firebase - 使用 Firebase 控制台在网格中显示事件
- javascript - 如何使用 jquery 加载 javascript 模块
- python - 使用 Google Cloud SDK 设置本地环境
- powershell - 批量重命名/更新存储 blob 文件
- jquery - Primefaces 输入文本设置值
- node.js - Nodejs作为Windows服务无法读取网络驱动器上的文件
- javascript - select2 多选框仅将最后选择的值放入数组
- java - 拆分具有至少一个特殊字符(如 - #)和空格的字符串
- spring - Spring Cloud kubernetes 未加载配置映射
- python - 目标 WSGI 脚本无法作为 Python 模块加载:没有名为“pytz”的模块