Python の Web クローラー フレームワーク - Web クローラーの概要


I.はじめに

  • 個人ホームページ: ζ Xiaocaiji
  • 皆さんこんにちは、Xiaocaiji です。Python のネットワーク クローリング フレームワークを学びましょう
  • この記事がお役に立ちましたら、ぜひフォロー、いいね、ブックマークしてください (ワンクリックで 3 つのリンク)

2. はじめに

   ビッグデータ時代の到来により、ネットワーク情報量はますます増大しており、インターネットにおけるWebクローラーの地位はますます重要になります。この記事では、Python 言語を使用して Web クローラーを実装するための一般的なテクニックと、一般的な Web クローラー フレームワークを紹介します。


3. Web クローラーの概要

   Web クローラー (Web スパイダー、Web ロボット、特定のコミュニティでは Web ページ チェイサーとも呼ばれることもあります) は、指定されたルール (Web クローラー アルゴリズム) に従ってネットワーク内の情報を自動的に参照または取得でき、Python を使用してクローラー プログラムまたはスクリプトを簡単に作成できます。

   Web クローラーは日常生活の中で頻繁に登場し、検索エンジンは Web クローラーなしでは機能しません。たとえば、Baidu 検索エンジンのクローラーの名前は Baidu Spider です。Baidu Spider は、Baidu 検索エンジンの自動プログラムです。毎日大量のインターネット情報をクロールし、インターネット上の Web ページ、写真、ビデオ、その他の情報を収集および整理します。ユーザーが Baidu 検索エンジンに対応するキーワードを入力すると、Baidu は収集したネットワーク情報から関連するコンテンツを検索し、その情報を特定の順序でユーザーに表示します。Baidu Spider の作業プロセス中に、検索エンジンは Baidu Spider の作業を呼び出す呼び出しプログラムを構築しますが、これらのスケジューリング プログラムを実現するには、特定のアルゴリズムを使用する必要があります。異なるアルゴリズムを使用すると、クローラーの作業効率が異なり、クロールの結果も異なります。したがって、クローラを学習するときは、クローラの実装プロセスを理解するだけでなく、いくつかの一般的なクローラ アルゴリズムも理解する必要があります。場合によっては、開発者自身が対応するアルゴリズムを策定する必要があります。


4. Web クローラーの分類

Web クローラーは、実装されているテクノロジーと構造に応じて、一般的な Web クローラー集中型 Web クローラー増分 Web クローラーディープ Web クローラーおよびその他の   タイプに分類できます。実際の Web クローラーでは、通常、次のタイプのクローラーの組み合わせです。

1. 一般的なWebクローラー

   汎用 Web クローラーは、ホール Web クローラーとも呼ばれます。一般的に使用される Web クローラーは、クロール範囲とクロール量が膨大です。クロールするデータが膨大であるため、クローラーの速度とストレージ容量に対する要件が高くなります。汎用 Web クローラーは、ページを巡回するための要件が​​比較的低い一方で、更新するページが多すぎるため、通常は並行して動作するため、ページの更新に時間がかかります。この種の Web クローラーは主に大規模な検索エンジンで使用され、大きな応用価値があります。通常、Web クローラーは主に、初期 URL 収集、URL キュー、ページ クローリング モジュール、ページ分析モジュール、ページ データ モジュール、ページ フィルタリング モジュールなどで構成されます。

2. Web クローラーを収集する

  集約 Web クローラーはトピック Web クローラーとも呼ばれ、事前に定義されたテーマに従って関連する Web ページを選択的にクロールするクローラーを指します。一般的な Web クローラーと比較して、インターネット全体でターゲット リソースを検索するのではなく、トピックに関連するページ内でクロールされたターゲット Web ページを検索します。これにより、ハードウェアとネットワーク リソースが大幅に節約され、保存されるページ数が少ないため高速になります。集中型 Web クローラーは、主に特定の情報をクロールし、特定のグループの人々にサービスを提供するために使用されます。

3. インクリメンタル Web クローラー

  増分 Web クローラー、いわゆるインクリメンタルは、増分更新に対応します。インクリメンタル更新とは、更新時に変更箇所のみを更新することを意味します。変更されていない部分は更新されないため、増分 Web クローラーは、Web ページをクロールするときに、必要に応じて新しく生成されたページのみをクロールし、変更されていないページはクロールしません。これにより、ダウンロード量を効果的に削減し、時間とスペースの消費を削減できますが、クロール アルゴリズムに若干の困難が加わります。

4.ディープウェブクローラー

  インターネットでは、Web ページはその存在の仕方によってサーフェス Web ページとディープ Web ページに分けられますが、サーフェス Web ページとは、フォームを送信せずに静的なハイパーリンクを使用して直接アクセスできる静的なページを指します。ディープ Web ページとは、ほとんどのコンテンツが静的ページ リンクからは取得できず、検索フォームの背後に隠されており、ユーザーが Web ページを取得するためにいくつかのキーワードを送信する必要があるページを指します。ディープ ページでアクセスする必要がある情報の量は、サーフェス ページの数百倍であるため、ディープ ページが主にクロールされる対象になります。
  ディープウェブ クローラーは主に 6 つの基本機能モジュール (クローラー コントローラー、パーサー、フォーム アナライザー、フォーム プロセッサ、レスポンス アナライザー、LVS コントローラー) と 2 つのクローラー内部データ構造 (URL リスト、LVS テーブル) で構成されます。このうち、LVS はラベルと値のセットを表し、フォームに入力するためのデータ ソースを表すために使用されます。


5、Web クローラーの基本原則

ここに画像の説明を挿入

  • ①シードURLを指定してキューに入れる
  • ②キューからURLを取得する
  • ③ HTTPプロトコルを使用してネットワークリクエストを開始します。
  • ④ ネットワークリクエストを開始する過程で、ドメイン名をIPアドレスに変換する、つまりドメイン名解決が必要です。
  • ⑤ サーバーからのレスポンスを取得します。この時点ではバイナリ入力ストリームです。
  • ⑥ バイナリ入力ストリームを HTML ドキュメントに変換し、コンテンツ (タイトルなど取得したいコンテンツ) を解析します。
  • ⑦ 公開したコンテンツをデータベースに保存
  • ⑧ 現在の URL を記録し、次回クロールが繰り返されないようにクロール済みとしてマークします。
  • ⑨ 現在の HTML ドキュメントから、次のクロールのためにページに含まれる他の URL を解析します。
  • ⑩ 解析されたURLがクロールされているかどうかを判断し、クロールされている場合は破棄します。
  • ⑪ クロールされていない URL をクロール待ち URL のキューに格納する
  • ⑫ 上記の手順を繰り返して、URL キューにクロールを待っているデータがないことを確認します。

  Python の Web クローリング フレームワーク - 初めての Web クローラーの紹介、これで終わりです。読んでいただきありがとうございます。記事が役に立った場合は、フォロー、いいね、ブックマークを歓迎します (ワンクリックで 3 つのリンク)


おすすめ

転載: blog.csdn.net/weixin_45191386/article/details/131445359