我试图通过亚马逊上的html表解析div类,当我运行代码时,find_all()
有时返回我正在寻找的正确的div类,有时它会返回一个空列表。有关结果变化原因的任何想法?
我从这个网址中提取:https://www.amazon.com/dp/B0767653BK
我的代码:
req = requests.get('https://www.amazon.com/dp/B0767653BK')
page = req.text
BSoup = BeautifulSoup(page, 'html.parser')
divClass = Bsoup.find_all('div', class_='a-section a-spacing-none a-padding-none overflow_ellipsis')
答案 0 :(得分:0)
在尝试使用CSS类的组合查找所有元素时,最好使用beautifulsoup选择器:
from bs4 import BeautifulSoup
import requests
req = requests.get('https://www.amazon.com/dp/B0767653BK')
soup = BeautifulSoup(req.text, 'html.parser')
for div_class in soup.select('div.a-section.a-spacing-none.a-padding-none.overflow_ellipsis'):
print div_class.get_text(strip=True)
这是优选的,因为它允许四个类元素以任何顺序存在。因此,如果页面决定更改类的顺序,它仍然会找到它们。
在文档中查看Searching by CSS class。