首页 > 解决方案 > 抓取此网站时遇到问题

问题描述

我正在尝试在工作中抓取一个网站,但遇到错误代码问题。这是我的代码。

from bs4 import BeautifulSoup

html = "https://reddit.com" #just an example
soup = BeautifulSoup(requests.get(html).text, 'html.parser')
rootDiv=soup.find('div',attrs={'id':'root'})
if(rootDiv):
   targetdivs=rootDiv.find('div',attrs={'class':'box-bottom'})
   for targetDiv in targetdivs:
       span=targetdivs.find('span',attrs={'class':'box-bottom-offline'})
       if(span):
           print(span.text)


这是我试图用红色圈起来的内容的一个片段。

运行代码后,我收到错误:

TypeError:“NoneType”对象不可迭代

任何建议将不胜感激

在此处输入图像描述

标签: pythonweb-scraping

解决方案


如果您仔细查看 html,'class':'box-bottom'只出现一次,这也是错误显示“object is not iterable”的原因,这基本上意味着targetDiv 不是可以循环的数组。

试试看嘛

print(targetdivs) 

targetdivs=rootDiv.find('div',attrs={'class':'box-bottom'})

然后你会得到你的答案,希望这会有所帮助


推荐阅读