美丽的汤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')
答
最好是试图找到与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。
也许,div类正在动态变化 – RomanPerekhrest