0

ウェブサイトからいくつかのデータを取得しようとしています。beuatifulsoup (以下のコードで print(soup) を使用) でプルしたデータを確認すると、あまりうまくいかないようです。view-source:URLで確認したときとは異なります。探しているフィールドが見つかりません。解決策を見つけるのを手伝ってもらえますか?

ウェブサイト: https://www.wayfair.com/furniture/pdp/mercury-row-stalvey-contemporary-4725-wide-1-drawer-server-w003245064.html

基本的に、私はこの商品の価格を取得しようとしています。他の Web サイトでも同じコード構造を使用しましたが、正しく機能しましたが、wayfair では機能しません。

まだ解決策を見つけることができなかった 2 番目のことは、コードの最後の行です (StyledBox-owpd5f-0 PriceV2__StyledPrice-sc-7ia31j-0 lkFBUo pl-Price-V2 pl-Price-V2--5000)。製品の名前の代わりに、$389.99 のような価格だけを取得する方法はありますか?

前もって感謝します!

この私のコード:

html = requests.get('https://www.wayfair.com/furniture/pdp/mercury-row-stalvey-contemporary-4725-wide-1-drawer-server-w003245064.html')
soup=BeautifulSoup(html.text,"html.parser")
print(soup)
inps=soup.find("div",class_="SFPrice").find_all("input")
for inp in inps:
    print(inp.get("StyledBox-owpd5f-0 PriceV2__StyledPrice-sc-7ia31j-0 lkFBUo pl-Price-V2 pl-Price-V2--5000"))
4

2 に答える 2

0

あなたのサイトの例はクライアント側でレンダリングされたページであり、取得された元の html データには、検索された要素が含まれていません (クラス「SFPrice」の div など)。

seleniumおよびphantomJS、dryscrape またはその他のオプションと組み合わせて、beautifulsoup を使用して JavaScript でレンダリングされたページをスクレイピングする方法については、この質問を参照してください。

または、このガイドもご覧ください。

于 2021-07-22T11:56:59.550 に答える