美丽的汤findall返回不同的结果

问题描述:

我想解析通过从亚马逊的html表格的div类,当我运行代码find_all()有时返回我正在寻找的正确的div类,和其他时间返回一个空列表。任何想法为什么结果会有所不同?美丽的汤findall返回不同的结果

我从这个网址拉: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

也许,div类正在动态变化 – RomanPerekhrest

最好是试图找到与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