我目前正在使用 Selenium & BeautifulSoup 来提取数据,有时不同页面的格式可能会略有不同,最多 3 种不同类型的 html 差异,当涉及到不同页面之一时,我无能为力它给了我一个例外,因为数据不存在。
我可以做类似 if Exception = AttributeError 的事情,试试这段代码并从它停止的地方继续吗?
AttributeError: 'NoneType' object has no attribute 'text'
这是当前代码
price = soup.find('li', {'id' :'J_PromoPrice'})
priced = price.find('strong', {'class' :'tb-rmb-num'}).text
if priced == "":
priced = price.find('strong', {'class' :'tb-rmb-num'}).text
else:
print ("No Normal Price Found")
如您所见,已经有一组 IF ELSE 来检测它是否为空,如果为空 = 找到另一个可以处理 2 种不同类型 html 的文本标签,但我面临的第三个问题是它没有' 甚至没有标签,但它确实在其他地方有它。
简而言之,如果我遇到此异常,我会尝试从其他地方获取文本,然后从异常被打到我脸上的地方继续执行脚本。
更新完整跟踪
Traceback (most recent call last):
File "C:\Users\X\Desktop\Python\python.py", line 521, in <module>
getLoadItem()
File "C:\Users\X\Desktop\Python\python.py", line 57, in getLoadItem
getLoadItemAnalyse(loop['ID'],loop['Link'])
File "C:\Users\X\Desktop\Python\python.py", line 236, in getLoadItemAnalyse
priced = price.find('strong', {'class' :'tb-rmb-num'}).text
AttributeError: 'NoneType' object has no attribute 'text'