2017-10-10 11 views
0

私はAmazonのHTMLテーブルからdivクラスを解析しようとしています。コードを実行すると、find_all()が私が探しているdivクラスを返すことがあります。空のリストを返します。結果が異なる理由についてのアイデアはありますか?美しいスープfindall異なる結果を返す

私はこのURLから引っ張っています:https://www.amazon.com/dp/B0767653BK

マイコード:CSSクラスの組み合わせを持つすべての要素を検索しようとしたときに

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

を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) 

これは、4つのクラス要素が任意の順序で存在することができるので、これが望ましいです。したがって、ページがクラスの順序を変更することを決定した場合でも、それを見つけることができます。

文書のSearching by CSS classをご覧ください。

関連する問題