我正在使用 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').text
soup.find('div', class_='last-sale-value market-dir market-dir-up').find('div', class_='dollar').text
soup.find('div', class_='last-sale-value market-dir market-dir-static').find('div', class_='dollar').text
driver = webdriver.Firefox()
driver.get(url)
content = driver.page_source
soup = 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').text
except:
pass
千万里不及你
相关分类