申し訳ありませんが、私はSelenium noobであり、多くの読書を行っていますが、まだこのページから製品価格(0.55ポンド)を手に入れることができません: https://groceries.asda.com/product/spaghetti-tagliatelle/asda-spaghetti/36628 bs4を使用してhtmlを解析すると、製品の詳細は表示されません。 Seleniumを使用して、ページ全体の文字列を取得し、そこに価格を表示することができます(次のコードを使用)。私はこれから何とか価格を引き出すことができるはずですが、それほどハッキリしないソリューションを好むでしょう。Seleniumを使用してWebページで隠し製品の詳細を掻き立てる
browser = webdriver.Firefox(executable_path=r'C:\Users\Paul\geckodriver.exe')
browser.get('https://groceries.asda.com/product/tinned-tomatoes/asda-smart-price-chopped-tomatoes-in-tomato-juice/19560')
content = browser.page_source
私はこのような何かを実行した場合:、要素をselenium.webdriver.firefox.webelement.FirefoxWebElement(= "df23fae6-e99c-403C-a992-a1adf1cb8010" セッション:
elem = driver.find_element_by_id("bodyContainerTemplate")
print(elem)
それはちょうど返します= "6d9aac0b-2e98-4bb5-b8af-fcbe443af906")
価格はこの要素に関連付けられたテキストです:p class = "prod-price"しかし、私はこの作業をすることはできません。このテキスト(製品価格)を取得するにはどうしたらよいですか?
ページからの情報の一部が欠落している理由は、Webページの一部がJavascriptでレンダリングされているためです。もっと「ハッキー」な解答がないように[this](https://github.com/scrapy-plugins/scrapy-splash)をチェックしてください。 –
APIから製品データを入手できます。 'https://groceries.asda.com/api/items/view?itemid = 36628&responsegroup = extended&cacheable = true&storeid = 4565&shipdate = currentDate&requestorigin = gi'、セレンを使う必要はありません。 'python-requests'のすべての方法! – leovp
代わりに 'print(elem.text)'を試してください –