検索
ホームページバックエンド開発Python チュートリアルDevTools と HAR ファイルを使用したデータのスクレイピング

データ スクレイピングは、Web サイトから有意義な情報を抽出したいと考えている人にとって状況を大きく変えるものです。 Chrome DevTools や HAR ファイルなどのツールを使用すると、隠された API を発見し、貴重なデータ ストリームを簡単にキャプチャできます。この投稿では、これらのツールを使用して食料品配達プラットフォームである Blinkit から商品データを収集する方法を共有し、あなたもそれを行う方法を示します。

食料品アプリにデータ スクレイピングを選択した理由

食料品配達アプリを構築しているときに、実際のデータの不足という大きな課題に直面しました。独自のデータセットを最初から作成するのは非常に時間がかかり、プロジェクトに実質的な利点はありませんでした。もっと迅速で実用的なソリューションが必要だったので、データをスクレイピングするというアイデアを思いつきました。 Blinkit から製品の詳細を抽出することで、リソースを無駄にすることなく、正確な現実世界のデータを取得してアプリをテストし、改良することができました。

Web 上のデータをスクレイピングする一般的な方法

  1. 手動コピー&ペースト

    • シンプルですが面倒です。少量のデータの抽出に適しています。
  2. Web スクレイピング ツール

    • Scrapy、BeautifulSoup、Puppeteer などのツールは、Web サイトからデータを抽出するプロセスを自動化します。
    • 大規模な構造化データ抽出に最適です。
  3. API 統合

    • 一部の Web サイトでは、データに直接かつ合法的にアクセスするためのパブリック API を提供しています。
    • API エンドポイントと認証プロセスの知識が必要です。
  4. ブラウザ開発ツール

    • ネットワーク リクエストを検査し、HAR ファイルをキャプチャし、ブラウザ内でページ要素を直接分析します。
    • 非表示の API や JSON データの識別に最適です。
  5. ヘッドレスブラウザ

    • Puppeteer や Selenium などのヘッドレス ブラウザ ライブラリを使用して、ナビゲーションとスクレイピングを自動化します。
    • JavaScript のレンダリングまたはインタラクションを必要とするサイトに最適です。
  6. HAR ファイルの解析

    • HAR ファイルは、Web ページのすべてのネットワーク アクティビティをキャプチャします。これらを解析して API、JSON 応答、またはその他のデータを抽出できます。
    • 動的コンテンツまたは非表示データを含むサイトに役立ちます。
  7. HTML 解析

    • BeautifulSoup (Python) や Cheerio (Node.js) などのライブラリを使用して HTML コンテンツを解析し、データを抽出します。
    • シンプルで静的な Web サイトに効果的です。
  8. PDF または画像からのデータ抽出

    • PyPDF2、Tesseract (OCR)、Adobe API などのツールは、データがオンラインで利用できない場合にファイルからテキストを抽出するのに役立ちます。
  9. 自動スクリプト

    • データをスクレイピング、解析、保存するために Python、Node.js、または同様の言語で書かれたカスタム スクリプト。
    • スクレイピングプロセスを完全に制御します。
  10. サードパーティ API

    • DataMiner、Octoparse、Scrapy Cloud などのサービスを使用して、スクレイピング タスクを処理します。
    • 時間を節約できますが、サービス プランによっては制限がある場合があります。

HAR ファイル解析を選択しました

HAR ファイルとは何ですか?

Scraping Data with DevTools and HAR Files

HAR (HTTP アーカイブ) ファイルは、Web ページのネットワーク アクティビティを記録する JSON 形式のアーカイブ ファイルです。これには、ヘッダー、クエリ パラメーター、ペイロード、タイミングなど、すべての HTTP 要求と応答に関する詳細情報が含まれます。 HAR ファイルは、デバッグ、パフォーマンス分析、そしてこの場合はデータ スクレイピングによく使用されます。

HAR ファイルの構造

HAR ファイルはいくつかのセクションで構成されており、主なセクションは次のとおりです。

Scraping Data with DevTools and HAR Files

  1. ログ

    • HAR ファイルのルート オブジェクト。記録されたセッションとキャプチャされたエントリに関するメタデータが含まれます。
  2. エントリー

    • 各エントリが個々の HTTP リクエストとそれに対応するレスポンスを表すオブジェクトの配列。

主要なプロパティには以下が含まれます:

  • request: URL、ヘッダー、メソッド、クエリパラメータなどのリクエストに関する詳細。
  • 応答: ステータス コード、ヘッダー、コンテンツなどの応答に関する情報。
  • タイミング: 要求と応答のサイクル (DNS、接続、待機、受信など) 中に費やされた時間の内訳。
  1. ページ

    • ページのタイトル、読み込み時間、ページが開かれたときのタイムスタンプなど、セッション中に読み込まれた Web ページに関するデータが含まれます。
  2. 作成者

    • HAR ファイルの生成に使用されたツールまたはブラウザに関するメタデータ (名前やバージョンなど)。

HAR ファイル解析を選んだ理由

HAR ファイルは、Web ページ上のすべてのネットワーク アクティビティの包括的なスナップショットを提供します。これにより、隠された API の特定、JSON ペイロードのキャプチャ、スクレイピングに必要な正確なデータの抽出に最適になります。構造化された JSON 形式により、Python や JavaScript ライブラリなどのツールを使用した解析プロセスも簡素化されます。

計画: HAR ファイル解析を使用したデータのスクレイピング

Scraping Data with DevTools and HAR Files

Blinkit から製品データを効率的に抽出するために、次の構造化された計画に従いました。

  1. ネットワークアクティビティの参照とキャプチャ
    • Blinkit のサイトを開き、Chrome DevTools を起動しました。
    • さまざまな製品ページを参照して、[ネットワーク] タブで必要な API 呼び出しをすべてキャプチャしました。

Scraping Data with DevTools and HAR Files

  1. HAR ファイルのエクスポート

    • 記録されたネットワーク アクティビティをオフライン分析用に HAR ファイルとして保存しました。
  2. HAR ファイルの解析

    • Python を使用して HAR ファイルを解析し、関連データを抽出しました。
    • プロセスを合理化するために 3 つの主要な関数を作成しました。
  • 機能 1: 関連する応答をフィルターする
    • エンドポイント /listing?catId=* に一致するすべての応答を抽出して、製品関連のデータを取得しました。

Scraping Data with DevTools and HAR Files

  • 機能 2: データのクリーンアップと抽出
    • フィルタリングされた応答を処理して、ID、名前、カテゴリなどの主要なフィールドを抽出しました。

Scraping Data with DevTools and HAR Files

  • 機能 3: 画像をローカルに保存
    • データ内のすべての製品画像の URL を特定し、参照用にローカル ファイルにダウンロードしました。

Scraping Data with DevTools and HAR Files

  1. 実行と結果
    • 試行錯誤を含むプロセス全体には、約 30 ~ 40 分かかりました。
    • 名前、カテゴリ、画像を含む約 600 製品のデータのスクレイピングに成功しました。

Scraping Data with DevTools and HAR Files

このアプローチにより、食料品配達アプリに必要なデータを迅速かつ効率的に収集することができました。

結論

データ スクレイピングを効率的に行うと、特にアプリケーションのテストや構築に現実世界のデータが必要な場合に、多くの時間と労力を節約できます。 Chrome DevTools と HAR ファイルを活用することで、データセットを手動で作成することなく、Blinkit から貴重な製品データを迅速に抽出することができました。このプロセスは多少の試行錯誤は必要ですが、簡単で、開発者が直面する一般的な問題に対する実用的な解決策を提供しました。この方法を使用すると、1 時間以内に 600 件の商品詳細を収集することができ、食料品配達アプリ プロジェクトを進めるのに役立ちました。

ただし、データスクレイピングは常に倫理的かつ責任を持って取り組む必要があります。スクレイピングする前に、必ず Web サイトの利用規約と法的ガイドラインを遵守していることを確認してください。正しく行えば、スクレイピングはデータを収集し、プロジェクトを改善するための強力なツールになります。

以上がDevTools と HAR ファイルを使用したデータのスクレイピングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

Pythonにリストが存在する場合、配列を使用する目的は何ですか?Pythonにリストが存在する場合、配列を使用する目的は何ですか?May 01, 2025 am 12:04 AM

choosearraysoverlistsinperbetterperformance andmemoryeficiencyspecificscenarios.1)largeNumericaldatasets:Araysreducememoryusage.2)パフォーマンス - クリティカル操作:ArraysOfferSpeedBoostsfortsfortsclikeappendedoring.3)タイプリー:Arrayesenforc

リストの要素と配列を繰り返す方法を説明します。リストの要素と配列を繰り返す方法を説明します。May 01, 2025 am 12:01 AM

Pythonでは、ループに使用し、列挙し、包括的なリストを通過することができます。 Javaでは、従来のループを使用し、ループを強化してアレイを通過することができます。 1。Pythonリストトラバーサル方法は、ループ、列挙、およびリスト理解のためのものです。 2。Javaアレイトラバーサル法には、従来のループとループ用の強化が含まれます。

Python Switchステートメントとは何ですか?Python Switchステートメントとは何ですか?Apr 30, 2025 pm 02:08 PM

この記事では、バージョン3.10で導入されたPythonの新しい「マッチ」ステートメントについて説明します。これは、他の言語のスイッチステートメントに相当するものです。コードの読みやすさを向上させ、従来のif-elif-elよりもパフォーマンスの利点を提供します

Pythonの例外グループとは何ですか?Pythonの例外グループとは何ですか?Apr 30, 2025 pm 02:07 PM

Python 3.11の例外グループは、複数の例外を同時に処理することで、同時シナリオと複雑な操作でエラー管理を改善します。

Pythonの関数注釈とは何ですか?Pythonの関数注釈とは何ですか?Apr 30, 2025 pm 02:06 PM

Pythonの関数注釈は、タイプチェック、ドキュメント、およびIDEサポートの関数にメタデータを追加します。それらはコードの読みやすさ、メンテナンスを強化し、API開発、データサイエンス、ライブラリの作成において重要です。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境