タイトルと価格を取得するためにホテルのウェブサイトをスクラップします。 "hotelInfo"は興味深いコンテンツを保持するdiv
です。BeautifulSoupでBeautifulSoupを検索しましたか?
私はこのdiv
で自分の操作を実行したいと思っています。私のコードは以下の通りです。
from bs4 import BeautifulSoup
import requests
response = requests.get("http://$hotelurlhere.com")
soup = BeautifulSoup(response.text)
hotelInfo = soup.select('div.hotel-wrap')
hotelTitle = soup.find_all('h3', attrs={'class': 'p-name'})
hotelNameList = []
hotelPriceList = []
for hotel in hotelInfo:
for title in hotelTitle:
hotelNameList.append(title.text)
hotelTitleは上記のhotelInfoのBeautifulsoup検索でなければなりません。しかし、私はこの
hotelTitle = hotelInfo.find_all('h3', attrs={'class': 'p-name'})
エラーメッセージしようとすると:
Traceback (most recent call last):
File "main.py", line 8, in <module>
hotelTitle = hotelInfo.find_all('h3', attrs={'class': 'p-name'})
AttributeError: 'list' object has no attribute 'find_all'
エラーが返されました「find_all」の属性を持っていないリスト要素に関連していました。 hotelInfoは返されたリスト要素なので、これが理解できます。私は、このリスト内のh3
情報をチェックする正しい方法についての情報を検索しましたが、何の成功もありません。
これを行うにはどのような方法が最適ですか? soup.find_allではなく、hoteTitleをhotelInfo.find_allに設定することはできませんか?
あなたの質問は不明であると同様。予想される出力を持つサンプルHTML文書を表示してください。 – styvane
エラーメッセージと説明が更新されました。ここで共有できるサンプルデータはありません。 – mutantChickenHer0