私はスクラピー(スプラッシュあり)を学び、jsを有効にしたページの結果をスクラップするためにスパイダーを構築しています。私のスパイダーは動作し、jsページの結果を返します。しかし、それはhttps://www.zara.com/us/en/bejewelled-appliqu%C3%A9-dress-p07854034.html?v1=4818592&v2=733885治療のスプラッシュが結果を返さない
xpath used: //*[contains(concat(" ", @class, " "), concat(" ", "_product-price", " "))]//span/text()
上記のXPathは、ブラウザで結果を返しませんが、scrapy経由で呼び出された場合の結果を返しません。このリンクから価格を返しません。ここに私のクモは、サイトから価格が返されない理由を把握助けてください
yield scrapy.Request(url, callback=self.parse_page, dont_filter=True, meta={'splash': {'args': {'wait': 5,},'endpoint': 'render.html',}})
を呼ぶのか?
ありがとうございます! //*[contains(concat(" ", @class, " "), concat(" ", "_product-price", " "))]//span/text()
または単に//*[contains(concat(" ", @class, " ")," _product-price "))]//span/text()
のXpath @クラス=述語は、あなたがそこに持っているような複数のクラス(スペースで区切られたクラス)のために動作しません - あなたのXPathのために、この
あなたのコードや設定が原因であるかどうかを確認するには、スプラッシュのページ結果のスクリーンショットを表示して確認するか、価格がある場合はドキュメントツリーを確認してください。 – jabargas
ああ、ちょうどあなたのコードを見て、あなたのxpathが間違っているようです。 – jabargas