Scrapy を使用して JD マーチャントの製品データをクロールする方法

PHPz
リリース: 2023-06-23 08:01:23
オリジナル
1742 人が閲覧しました

Scrapy を使用して JD マーチャントの製品データをクロールする方法

Scrapy は、Web ページ データをクロールするためのコードを簡単かつ便利に作成できる強力な Python Web クローラー フレームワークです。この記事では、Scrapy を使用して JD マーチャントの商品データをクロールする方法を紹介します。

準備

コードを書き始める前に、いくつかの準備をする必要があります。

1. Scrapy をインストールする

Scrapy をローカルにインストールする必要があります。Scrapy をまだインストールしていない場合は、コマンド ラインに次のコマンドを入力できます:

pip install Scrapy
ログイン後にコピー

2 Scrapy プロジェクトの作成

ターミナルを開いて次のコマンドを入力します:

scrapy startproject JDspider
ログイン後にコピー

このコマンド行により、現在のフォルダーに JDspider という名前の Scrapy プロジェクトが作成されます。

3. Spider の作成

Scrapy では、Spider はデータをクローリングするためのコア コンポーネントです。 JD マーチャントの商品データを取得するには、Spider を作成する必要があります。コマンド ラインに次のコマンドを入力します。

cd JDspider
scrapy genspider JD jd.com
ログイン後にコピー

ここでは、scrapy genspider コマンドを使用して JD という名前のスパイダーを生成し、その開始 URL として jd.com を使用します。生成されたコードは JDspider/spiders/JD.py ファイルにあります。このファイルを編集してクローラーを完成させる必要があります。

ターゲット Web サイトを分析する

コードを記述する前に、まずターゲット Web サイトを分析する必要があります。 https://mall.jd.com/index-1000000127.html を例に挙げてみましょう。

Chrome ブラウザを開き、F12 キーを押して開発者ツールを開き、[ネットワーク] タブをクリックします。対象の Web サイトの URL を入力すると、対象の Web サイトのリクエストとレスポンスの情報が表示されます。

製品リスト データの読み込みに AJAX テクノロジが使用されていることがわかります。 [XMLHttpRequest] タブでは、リクエストの URL が表示され、JSON 形式でデータが返されました。

この URL に直接アクセスして製品情報を取得できます。

製品データの取得

製品情報を取得する方法がわかったので、Spider にコードを追加してこのタスクを完了できます。

まず、JDspider/spiders/JD.py ファイルを開いて、Spider クラスの定義を見つけます。このクラスを変更し、その名前、ドメイン名、初期 URL を定義する必要があります。

class JdSpider(scrapy.Spider):
    name = "JD"
    allowed_domains = ["jd.com"]
    start_urls = [
        "https://pro.jd.com/mall/active/3W9j276jGAAFpgx5vds5msKg82gX/index.html"
    ]
ログイン後にコピー

データの取得を開始します。 Scrapy では、Web ページのデータを取得するには parse() メソッドを使用する必要があります。 json モジュールを使用して、返された JSON データを解析し、必要な情報を抽出します。ここでは、製品のタイトル、価格、住所、数量の情報を取得します。

    def parse(self, response):
        products = json.loads(response.body)['data']['productList']
        for product in products:
            title = product['name']
            price = product['pricer']
            address = product['storeName']
            count = product['totalSellCount']
            yield {
                'title': title,
                'price': price,
                'address': address,
                'count': count,
            }
ログイン後にコピー

これでデータのキャプチャが完了しました。このスパイダーを実行して、結果をファイルに出力できます。ターミナルに次のコマンドを入力して Spider の実行を開始します:

scrapy crawl JD -o products.json
ログイン後にコピー
  • JD は作成した Spider の名前です;
  • -o は出力オプションで、キャプチャされたファイルを保存することを指定します。 results ここで、
  • products.json はファイル名で、結果はこのファイルに保存されます。

これは、Scrapy を使用して JD マーチャントの製品データをクロールする方法を示す簡単な例です。実際のアプリケーションでは、より複雑な処理を実行する必要がある場合があります。 Scrapy は、これを実現するための多くの強力なツールとモジュールを提供します。

以上がScrapy を使用して JD マーチャントの製品データをクロールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート