Gaby が言ったように、コンテンツは動的に読み込まれます。これは次の方法で確認できます。
- クロムでスクラップするためにウェブサイトを開く(Firefoxにもそれを行う方法があります)
- F12 キーを押して DevTools を開きます
- 「ネットワーク」タブを選択します
- フィルターとして「XHR」を選択
- 検索する (またはウェブサイトをリロードする)
XHR フィルター
アイテムのリストが表示されます。必要なものは次のとおりです。
search?cid=5168&isFacetsEnabled=true&globalShippingCountryCode=&globalShippingCurrencyCode=&locale=en_US&pageId=0
それをクリックすると、ヘッダー付きの http リクエストと、必要なすべてのデータを含むレスポンスが表示されます。
これをスクレイピーで行うにはもう少し複雑です。このリンクを破棄する必要がありますが、デフォルト (「GET」) の代わりに「POST」メソッドを使用します。スクレイピースパイダーからこれを行うには:
yield scrapy.Request(url, self.parse_data, method="POST", headers=headers, body=body)
URL は XHR フィルターで見つけたものである必要があり、使用されるメソッドは「POST」です。以前に見つけたヘッダーをコピーする必要があり、本文には検索対象に固有のすべてのパラメーターが含まれます。そこから、ファイルに保存したり、好きなことをしたりできる JSON 応答を取得します。
詳細が必要な場合はお知らせください。