为了账号安全,请及时绑定邮箱和手机立即绑定

Beautiful Soap 查找/尝试可能存在“NoneType”错误的不同类元素

Beautiful Soap 查找/尝试可能存在“NoneType”错误的不同类元素

人到中年有点甜 2023-07-11 15:40:26
我正在使用 beautiful soup 来从 url 中获取元素。页面上有些元素的类名称会根据值和百分比(向上、向下、平坦)而变化。显然,如果我尝试soup.find('div', class_='down-indicator')并且这是一个积极的指标,我将收到如下错误:AttributeError: 'NoneType' object has no attribute 'find'。我需要一种 Pythonic 方式来循环或尝试 3 个可能的类选项,而不会出现错误破坏我的代码。我也尝试res = soup.find('div', class_='down-indicator')过执行 aif res is None...但它不会返回None它会返回错误。任何信息和学习将不胜感激!预先感谢您,这是我对某些代码的糟糕尝试:根据元素的不同,这 2 个 url 对于同一区域具有不同的类名称。url = 'http://www.stockx.com/adidas-yeezy-boost-380-lmnte-infants'url = 'http://www.stockx.com/adidas-yeezy-boost-350-oxford-tan'这些是find()元素的确切函数,因为它可以向上、向下或平坦:soup.find('div', class_='last-sale-value market-dir market-dir-down').find('div', class_='dollar').textsoup.find('div', class_='last-sale-value market-dir market-dir-up').find('div', class_='dollar').textsoup.find('div', class_='last-sale-value market-dir market-dir-static').find('div', class_='dollar').textdriver = webdriver.Firefox()driver.get(url)content = driver.page_sourcesoup = BeautifulSoup(content, 'lxml')try:    result = soup.find('div', class_='up-indicator').text    result = soup.find('div', class_='down-indicator').text    result = soup.find('div', class_='flat-indicator').textexcept:    pass
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

在这两种情况下,解决方案都相当简单:

soup.select_one('div.dollar').text

输出是相关页面的目标美元金额。


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信