(Python) Scrapy - JS ドロップダウン リストをスクレイピングする方法は?

tadm123

このアドレスの「サイズ」セクションの javascript リストをスクレイピングしたい:

http://store.nike.com/us/en_us/pd/magista-opus-ii-tech-craft-2-mens-firm-ground-soccer-cleat/pid-11229710/pgid-11918119

私がしたいのは、在庫のあるサイズを取得することです。リストが返されます。どうすればそれができますか?

私の完全なコードは次のとおりです。

# -*- coding: utf-8 -*-
from scrapy import Spider
from scrapy.http import Request

class ShoesSpider(Spider):
    name = "shoes"
    allowed_domains = ["store.nike.com"]
    start_urls = ['http://store.nike.com/us/en_us/pd/magista-opus-ii-tech-craft-2-mens-firm-ground-soccer-cleat/pid-11229710/pgid-11918119']

    def parse(self, response):       
        shoes = response.xpath('//*[@class="grid-item-image-wrapper sprite-sheet sprite-index-0"]/a/@href').extract()
        for shoe in shoes:
            yield Request(shoe, callback=self.parse_shoes) 

    def parse_shoes(self, response):
        name = response.xpath('//*[@itemprop="name"]/text()').extract_first()
        price = response.xpath('//*[@itemprop="price"]/text()').extract_first()
        #sizes = ??

        yield {
            'name' : name,
            'price' : price,
            'sizes' : sizes
        }

ありがとう

GoTrained

在庫のあるサイズを抽出するコードは次のとおりです。

import scrapy


class ShoesSpider(scrapy.Spider):
    name = "shoes"
    allowed_domains = ["store.nike.com"]
    start_urls = ['http://store.nike.com/us/en_us/pd/magista-opus-ii-tech-craft-2-mens-firm-ground-soccer-cleat/pid-11229710/pgid-11918119']

    def parse(self, response):
        sizes = response.xpath('//*[@class="nsg-form--drop-down exp-pdp-size-dropdown exp-pdp-dropdown two-column-dropdown"]/option')


        for s in sizes:
            size = s.xpath('text()[not(parent::option/@class="exp-pdp-size-not-in-stock selectBox-disabled")]').extract_first('').strip()
            yield{'Size':size}


結果は次のとおりです。

M 4 / W 5.5
M 4.5 / W 6
M 6.5 / W 8
M 7 / W 8.5
M 7.5 / 9 W
/ M 8 W 9.5
M 8.5 / W 10
M 9 / 10.5 W

for ループの中でこのように書くと、在庫の有無にかかわらず、すべてのサイズが抽出されます。

size = s.xpath('text()').extract_first('').strip()


ただし、在庫があるもののみを取得したい場合は、「exp-pdp-size-not-in-stock selectBox-disabled」クラスでマークされており、これを追加して除外する必要があります。

[not(parent::option/@class="exp-pdp-size-not-in-stock selectBox-disabled")]



他の靴のページでテストしましたが、同様に機能します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python Scrapy が間違った情報をスクレイピングする

分類Dev

Python Scrapyが同じ要素を何度もスクレイピングする

分類Dev

ドロップダウンリストをループする方法Scrapy

分類Dev

スクレイピングでPythonからブラウザでスクリプトを強制的に実行またはレンダリングする方法は?

分類Dev

Scrapyを使用したPython再帰的スクレイピング

分類Dev

PythonでSelenium Webdriverを使用してドロップダウンメニューオプションをスクレイピングする方法は?

分類Dev

スクレイピングされたリンクからPDFをダウンロードする方法[Python]?

分類Dev

Python Webスクレイピング-ページがJS経由でコンテンツをロードするときに、美しいスープでリソースを取得する方法は?

分類Dev

Pythonを使用してページを再帰的にスクレイピングする(scrapy)

分類Dev

Pythonで実行可能ファイルを使用せずにJSレンダリングページをスクレイプする方法はありますか?

分類Dev

Techcrunch からの Python/Scrapy スクレイピング

分類Dev

PythonリクエストとBeautifulSoupを使用してAspx動的Webサイトのドロップダウンメニューをループし、データをスクレイピングする方法

分類Dev

Python> bs4ドロップダウンリストからの選択に基づいてウェブサイトをスクレイピング

分類Dev

ウェブスクレイピング-画像をフォルダにダウンロードする方法python

分類Dev

JS ドロップダウン選択

分類Dev

ScrapyとPython2.7を使用した再帰的スクレイピングCraigslist

分類Dev

Scrapy:他のPythonスクリプトからスパイダーを2回以上実行する方法は?

分類Dev

リストをscrapyでスクレイピングし、構造化します

分類Dev

Xpath + Scrapy + Python:データポイントをスクレイピングできませんでした

分類Dev

スクレイピングされたデータからネストされた辞書を作成する(Scrapy Python)

分類Dev

Pythonでscrapyを介してWebサイトをスクレイピングしているときに、次のエラーが発生します。

分類Dev

Pythonのリンクからスプレッドシートをダウンロードする

分類Dev

セレンを使用したstackoverflowへのログインは機能しますが、scrapy pythonの使用は機能しません。ヘッドレスブラウジングでログインするにはどうすればよいですか?

分類Dev

Scrapy:条件付きでテーブル内のリンクをスクレイピングする方法

分類Dev

ScrapyでCSVをスクレイピングする

分類Dev

Scrapyで複雑なコメントをスクレイピングする

分類Dev

Selenium Python、フロントエンドアプリを使用してドロップダウンから選択します-react.js

分類Dev

fullPage.jsでレスポンシブドロップダウンナビゲーションプラグインを使用する方法は?

分類Dev

python3リクエストを使用して「support.oracle.com」にログインしてWebスクレイピングする方法は?

Related 関連記事

  1. 1

    Python Scrapy が間違った情報をスクレイピングする

  2. 2

    Python Scrapyが同じ要素を何度もスクレイピングする

  3. 3

    ドロップダウンリストをループする方法Scrapy

  4. 4

    スクレイピングでPythonからブラウザでスクリプトを強制的に実行またはレンダリングする方法は?

  5. 5

    Scrapyを使用したPython再帰的スクレイピング

  6. 6

    PythonでSelenium Webdriverを使用してドロップダウンメニューオプションをスクレイピングする方法は?

  7. 7

    スクレイピングされたリンクからPDFをダウンロードする方法[Python]?

  8. 8

    Python Webスクレイピング-ページがJS経由でコンテンツをロードするときに、美しいスープでリソースを取得する方法は?

  9. 9

    Pythonを使用してページを再帰的にスクレイピングする(scrapy)

  10. 10

    Pythonで実行可能ファイルを使用せずにJSレンダリングページをスクレイプする方法はありますか?

  11. 11

    Techcrunch からの Python/Scrapy スクレイピング

  12. 12

    PythonリクエストとBeautifulSoupを使用してAspx動的Webサイトのドロップダウンメニューをループし、データをスクレイピングする方法

  13. 13

    Python> bs4ドロップダウンリストからの選択に基づいてウェブサイトをスクレイピング

  14. 14

    ウェブスクレイピング-画像をフォルダにダウンロードする方法python

  15. 15

    JS ドロップダウン選択

  16. 16

    ScrapyとPython2.7を使用した再帰的スクレイピングCraigslist

  17. 17

    Scrapy:他のPythonスクリプトからスパイダーを2回以上実行する方法は?

  18. 18

    リストをscrapyでスクレイピングし、構造化します

  19. 19

    Xpath + Scrapy + Python:データポイントをスクレイピングできませんでした

  20. 20

    スクレイピングされたデータからネストされた辞書を作成する(Scrapy Python)

  21. 21

    Pythonでscrapyを介してWebサイトをスクレイピングしているときに、次のエラーが発生します。

  22. 22

    Pythonのリンクからスプレッドシートをダウンロードする

  23. 23

    セレンを使用したstackoverflowへのログインは機能しますが、scrapy pythonの使用は機能しません。ヘッドレスブラウジングでログインするにはどうすればよいですか?

  24. 24

    Scrapy:条件付きでテーブル内のリンクをスクレイピングする方法

  25. 25

    ScrapyでCSVをスクレイピングする

  26. 26

    Scrapyで複雑なコメントをスクレイピングする

  27. 27

    Selenium Python、フロントエンドアプリを使用してドロップダウンから選択します-react.js

  28. 28

    fullPage.jsでレスポンシブドロップダウンナビゲーションプラグインを使用する方法は?

  29. 29

    python3リクエストを使用して「support.oracle.com」にログインしてWebスクレイピングする方法は?

ホットタグ

アーカイブ