前提・実現したいこと
プログラミング初学者でPythonのスクレイピングの学習をしています。
講義に沿って同じように進めており、find_allを使用して<dl>を取得する過程で、エラーが表示されてしまい先に進めず困っています。
個人的に調べてみた結果、find_allで取得する要素がない的なことだと思うのですが、対処のしかたがわかりませんでした。
確認したところ取得したHTMLに<dl>は存在しているのですが、この場合どのように取得すればよいでしょうか?
発生している問題・エラーメッセージ
AttributeError: ResultSet object has no attribute 'find_all'. You're probably treating a list of elements like a single element. Did you call find_all() when you meant to call find()?
該当のソースコード
python
1import requests 2from bs4 import BeautifulSoup 3 4url = 'https://scraping-for-beginner.herokuapp.com/ranking/' 5res = requests.get(url) 6soup = BeautifulSoup(res.text, 'html.parser') 7spots = soup.find_all('div', attrs={'class': 'u_areaListRankingBox'}) 8spot = spots[0] 9 10spots = soup.find_all('div', attrs={'class': 'u_areaListRankingBox'}) 11spot = spots[0] 12 13spot_name = spot.find('div',attrs={'class': 'u_title'}) 14spot_name.find('span', attrs={'class': 'badge'}).extract() 15spot_name.text.replace('\n', '') 16 17spot.find('div',attrs={'class': 'u_rankBox'}) 18eval_num = spot.find('div',attrs={'class': 'u_rankBox'}).text 19eval_num = float(eval_num.replace('\n', '')) 20 21categoryItems = spot.find_all('div', attrs={'class': 'u_categoryTipsItem'}) 22categoryItems.find_all('dl')
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/07 10:06