2017-10-10 123 views
0

我想解析通過從亞馬遜的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

回答

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