データ スクレイピングは、Web サイトから有意義な情報を抽出したいと考えている人にとって状況を大きく変えるものです。 Chrome DevTools や HAR ファイルなどのツールを使用すると、隠された API を発見し、貴重なデータ ストリームを簡単にキャプチャできます。この投稿では、これらのツールを使用して食料品配達プラットフォームである Blinkit から商品データを収集する方法を共有し、あなたもそれを行う方法を示します。
食料品アプリにデータ スクレイピングを選択した理由
食料品配達アプリを構築しているときに、実際のデータの不足という大きな課題に直面しました。独自のデータセットを最初から作成するのは非常に時間がかかり、プロジェクトに実質的な利点はありませんでした。もっと迅速で実用的なソリューションが必要だったので、データをスクレイピングするというアイデアを思いつきました。 Blinkit から製品の詳細を抽出することで、リソースを無駄にすることなく、正確な現実世界のデータを取得してアプリをテストし、改良することができました。
Web 上のデータをスクレイピングする一般的な方法
-
手動コピー&ペースト
- シンプルですが面倒です。少量のデータの抽出に適しています。
-
Web スクレイピング ツール
- Scrapy、BeautifulSoup、Puppeteer などのツールは、Web サイトからデータを抽出するプロセスを自動化します。
- 大規模な構造化データ抽出に最適です。
-
API 統合
- 一部の Web サイトでは、データに直接かつ合法的にアクセスするためのパブリック API を提供しています。
- API エンドポイントと認証プロセスの知識が必要です。
-
ブラウザ開発ツール
- ネットワーク リクエストを検査し、HAR ファイルをキャプチャし、ブラウザ内でページ要素を直接分析します。
- 非表示の API や JSON データの識別に最適です。
-
ヘッドレスブラウザ
- Puppeteer や Selenium などのヘッドレス ブラウザ ライブラリを使用して、ナビゲーションとスクレイピングを自動化します。
- JavaScript のレンダリングまたはインタラクションを必要とするサイトに最適です。
-
HAR ファイルの解析
- HAR ファイルは、Web ページのすべてのネットワーク アクティビティをキャプチャします。これらを解析して API、JSON 応答、またはその他のデータを抽出できます。
- 動的コンテンツまたは非表示データを含むサイトに役立ちます。
-
HTML 解析
- BeautifulSoup (Python) や Cheerio (Node.js) などのライブラリを使用して HTML コンテンツを解析し、データを抽出します。
- シンプルで静的な Web サイトに効果的です。
-
PDF または画像からのデータ抽出
- PyPDF2、Tesseract (OCR)、Adobe API などのツールは、データがオンラインで利用できない場合にファイルからテキストを抽出するのに役立ちます。
-
自動スクリプト
- データをスクレイピング、解析、保存するために Python、Node.js、または同様の言語で書かれたカスタム スクリプト。
- スクレイピングプロセスを完全に制御します。
-
サードパーティ API
- DataMiner、Octoparse、Scrapy Cloud などのサービスを使用して、スクレイピング タスクを処理します。
- 時間を節約できますが、サービス プランによっては制限がある場合があります。
HAR ファイル解析を選択しました
HAR ファイルとは何ですか?
HAR (HTTP アーカイブ) ファイルは、Web ページのネットワーク アクティビティを記録する JSON 形式のアーカイブ ファイルです。これには、ヘッダー、クエリ パラメーター、ペイロード、タイミングなど、すべての HTTP 要求と応答に関する詳細情報が含まれます。 HAR ファイルは、デバッグ、パフォーマンス分析、そしてこの場合はデータ スクレイピングによく使用されます。
HAR ファイルの構造
HAR ファイルはいくつかのセクションで構成されており、主なセクションは次のとおりです。
-
ログ
- HAR ファイルのルート オブジェクト。記録されたセッションとキャプチャされたエントリに関するメタデータが含まれます。
-
エントリー
- 各エントリが個々の HTTP リクエストとそれに対応するレスポンスを表すオブジェクトの配列。
主要なプロパティには以下が含まれます:
-
request: URL、ヘッダー、メソッド、クエリパラメータなどのリクエストに関する詳細。
-
応答: ステータス コード、ヘッダー、コンテンツなどの応答に関する情報。
-
タイミング: 要求と応答のサイクル (DNS、接続、待機、受信など) 中に費やされた時間の内訳。
-
ページ
- ページのタイトル、読み込み時間、ページが開かれたときのタイムスタンプなど、セッション中に読み込まれた Web ページに関するデータが含まれます。
-
作成者
- HAR ファイルの生成に使用されたツールまたはブラウザに関するメタデータ (名前やバージョンなど)。
HAR ファイル解析を選んだ理由
HAR ファイルは、Web ページ上のすべてのネットワーク アクティビティの包括的なスナップショットを提供します。これにより、隠された API の特定、JSON ペイロードのキャプチャ、スクレイピングに必要な正確なデータの抽出に最適になります。構造化された JSON 形式により、Python や JavaScript ライブラリなどのツールを使用した解析プロセスも簡素化されます。
計画: HAR ファイル解析を使用したデータのスクレイピング
Blinkit から製品データを効率的に抽出するために、次の構造化された計画に従いました。
-
ネットワークアクティビティの参照とキャプチャ
- Blinkit のサイトを開き、Chrome DevTools を起動しました。
- さまざまな製品ページを参照して、[ネットワーク] タブで必要な API 呼び出しをすべてキャプチャしました。
-
HAR ファイルのエクスポート
- 記録されたネットワーク アクティビティをオフライン分析用に HAR ファイルとして保存しました。
-
HAR ファイルの解析
- Python を使用して HAR ファイルを解析し、関連データを抽出しました。
- プロセスを合理化するために 3 つの主要な関数を作成しました。
-
機能 1: 関連する応答をフィルターする
- エンドポイント /listing?catId=* に一致するすべての応答を抽出して、製品関連のデータを取得しました。
-
機能 2: データのクリーンアップと抽出
- フィルタリングされた応答を処理して、ID、名前、カテゴリなどの主要なフィールドを抽出しました。
-
機能 3: 画像をローカルに保存
- データ内のすべての製品画像の URL を特定し、参照用にローカル ファイルにダウンロードしました。
-
実行と結果
- 試行錯誤を含むプロセス全体には、約 30 ~ 40 分かかりました。
- 名前、カテゴリ、画像を含む約 600 製品のデータのスクレイピングに成功しました。
このアプローチにより、食料品配達アプリに必要なデータを迅速かつ効率的に収集することができました。
結論
データ スクレイピングを効率的に行うと、特にアプリケーションのテストや構築に現実世界のデータが必要な場合に、多くの時間と労力を節約できます。 Chrome DevTools と HAR ファイルを活用することで、データセットを手動で作成することなく、Blinkit から貴重な製品データを迅速に抽出することができました。このプロセスは多少の試行錯誤は必要ですが、簡単で、開発者が直面する一般的な問題に対する実用的な解決策を提供しました。この方法を使用すると、1 時間以内に 600 件の商品詳細を収集することができ、食料品配達アプリ プロジェクトを進めるのに役立ちました。
ただし、データスクレイピングは常に倫理的かつ責任を持って取り組む必要があります。スクレイピングする前に、必ず Web サイトの利用規約と法的ガイドラインを遵守していることを確認してください。正しく行えば、スクレイピングはデータを収集し、プロジェクトを改善するための強力なツールになります。
以上がDevTools と HAR ファイルを使用したデータのスクレイピングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。