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
これは、Scrapy を使用して JD マーチャントの製品データをクロールする方法を示す簡単な例です。実際のアプリケーションでは、より複雑な処理を実行する必要がある場合があります。 Scrapy は、これを実現するための多くの強力なツールとモジュールを提供します。
以上がScrapy を使用して JD マーチャントの製品データをクロールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。