爬取文章报错 'NoneType' object has no attribute 'text'
时间: 2023-06-21 18:19:51 浏览: 141
这个错误提示意味着在获取帖子内容时,找不到对应的标签或标签中没有内容,导致无法获取帖子的内容。这种情况可能是因为网页结构发生了变化,导致原来的代码无法正确提取内容。
为了解决这个问题,我们可以先使用BeautifulSoup库查看网页源代码,找到帖子内容所在的标签和属性,然后再使用find方法提取帖子内容。如果找不到对应的标签或属性,可以尝试使用其他方法提取内容,例如使用正则表达式或者其他属性。
下面是一个可以解决这个问题的代码示例:
```python
import re
...
for article in articles:
...
# 访问帖子链接,获取帖子内容
article_response = requests.get(link)
article_content = article_response.content
article_soup = BeautifulSoup(article_content, "html.parser")
# 通过正则表达式查找帖子内容
content_element = article_soup.find("td", {"class": "board-contents"})
content = re.sub(r'<.+?>', '', str(content_element)) # 去除HTML标签
content = content.strip()
print(title, link, author, time, content)
```
在这个代码中,我们使用了re库中的正则表达式,通过去除HTML标签的方式提取帖子内容。具体来说,我们先使用find方法获取帖子内容所在的标签,然后将其转换成字符串,使用正则表达式去除标签,最后去除字符串两端的空格,得到帖子的内容。这种方法可以有效避免由于网页结构变化导致的无法提取帖子内容的问题。
阅读全文