我正在尝试学习如何抓取网站,因此不使用API。我正在尝试抓取eBay的网站,并且我的脚本运行了几分钟,但由于指出“ AttributeError:'NoneType'对象没有属性'text'”的错误而停止运行。我做了尽职调查,并在Google / StackOverflow帮助中进行了搜索,但找不到任何内容。该错误指向下面的代码,但我不知道如何解决它。
total_sold_price = soup.find('span', {'class': 'vi-qtyS-hot-red'}).text
if total_sold_price:
total_sold_price = soup.find('span', {'class': 'vi-qtyS-hot-red'}).text
else:
try:
total_sold_price = soup.find('a', {'class': 'vi-txt-underline'}).text
except Exception as e:
print(e)
total_sold_price = ""
完整代码:https://pastebin.com/xS4bAwZK
在此先感谢,非常感谢。
问题是soup.find('span', {'class': 'vi-qtyS-hot-red'})
返回None,然后您尝试提取.text
None的文本(因此出现错误消息)。您可以通过几种方法来处理它。我所做的只是围绕一些逻辑:
另外,您可以让它存储文本total_sold_price = soup.find('span', {'class': 'vi-qtyS-hot-red'}).text
,如果可以存储文本,则可以精确地执行多余的操作。
最后,页面是动态的,因此您可能需要研究API或其他方式来访问数据。
但是对于您提供的代码,也许是这样的:
try:
total_sold_price = soup.find('span', {'class': 'vi-qtyS-hot-red'}).text
except Exception as e:
try:
total_sold_price = soup.find('a', {'class': 'vi-txt-underline'}).text
except Exception as e:
print(e)
total_sold_price = ""
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句