検索エンジンにおけるウェブクローラーの設計分析

検索エンジンにおけるウェブクローラーの設計分析

簡単に言えば、Web クローラーは、使用する「オフライン読み取り」ツールに似ています。オフラインであっても、インターネットに接続する必要があります。そうしないと、どうやってダウンロードできるのでしょうか?それで、違いは何でしょうか?

1) Web クローラーは高度に構成可能です。

2) ウェブクローラーはキャプチャしたウェブページ内のリンクを解析できる

3) Webクローラーはシンプルなストレージ構成を持つ

4) ウェブクローラーはウェブページの更新に基づいたインテリジェントな分析機能を備えている

5) ウェブクローラーは非常に効率的である

では、実際には要件である機能に基づいて、クローラーをどのように設計すればよいのでしょうか?どのステップに重点を置くべきでしょうか?

1) URLトラバーサルと記録

Larbin はこれをうまくやっています。実際、URL をトラバースするのは非常に簡単です。たとえば、次のようになります。

cat [結果] tr \" \\n gawk '{print $2}' pcregrep ^http://

URLのリストを取得できます。

2) マルチプロセスとマルチスレッド

それぞれに利点があります。現在、booso.com などの一般的な PC は、1 日に 5G のデータを簡単にクロールできます。約20万のウェブページ。

3) 時間更新制御

最も愚かなことは、重量を更新する時間がなく、一気に登り、戻ってもう一度登ることです。

通常、次のクロールのデータは前回のクロールと比較されます。5 回連続して変化がない場合は、この Web ページをクロールする時間間隔が 2 倍になります。

5 回連続のクロール中に Web ページが更新されると、クロール時間は元の時間の半分に短縮されます。

効率性が成功の鍵の 1 つであることに注意してください。

4) 這う深さはどのくらいですか?

それは状況によります。非常に強力で、Web クローラーを実行するサーバーが何万台もある場合は、この点をスキップすることをお勧めします。

私のように Web クロール用のサーバーが 1 つしかない場合は、次の統計を知っておく必要があります。

ウェブページの深さ: ウェブページの数: ウェブページの重要度

0 : 1 : : 10

1:20::8

2: :600: :5

3: :2000: :2

4上記:6000:一般的には計算できない

まあ、レベル 3 まで登れば十分です。さらに深く進むと、データ量が 3/4 倍になり、重要度が大幅に低下します。これを「ドラゴンの種を植えてノミを収穫する」といいます。

5) クローラーは通常、互いのウェブページを直接クロールしません。通常はプロキシを経由してクロールします。このプロキシには、負荷を軽減する機能があります。相手のウェブページが更新されていない場合は、ヘッダータグを取得するだけで十分です。一度にすべてを送信する必要がないため、ネットワーク帯域幅を大幅に節約できます。

Apache Web サーバーに記録された 304 は通常キャッシュされます。

6) 時間があるときにrobots.txtを確認してください

7) ストレージ構造。

これは意見の問題です。Google は gfs システムを使用しています。サーバーが 7 台または 8 台ある場合は、NFS システムを使用することをお勧めします。サーバーが 70 台または 80 台ある場合は、afs システムを使用することをお勧めします。サーバーが 1 台しかない場合は、どちらでも問題ありません。

以下は、私が作成したニュース検索エンジンがデータを保存する方法のコード スニペットです。

NAME=`echo $URL perl -p -e 's/([^\w\-\.\@])/$1 eq "\n" ? "\n":sprintf("%%%2.2x",ord($1))/eg'`mkdir -p $AUTHOR

newscrawl.pl$URL--user-agent="news.booso.com ( http://booso.com)"-outfile=$AUTHOR/$NAME


次の文に特に注意してください。

1. 通常、次のクロールのデータは前回のクロールと比較されます。5 回連続して変更がない場合は、Web ページをクロールする時間間隔が 2 倍になります。5 回連続のクロール中に Web ページが更新された場合は、設定されたクロール時間が元の時間の 1/2 に短縮されます。

ウェブページの更新頻度は、検索エンジンのスパイダーによるウェブサイトのクロールの度合いに重大な影響を及ぼします。ウェブページがクロールされる回数が多いほど、含まれる可能性が高くなり、含まれるページの数も増えます。インクルージョンは SEO の最も基本的な部分です。

原題: 検索エンジンにおけるウェブクローラーの設計分析

キーワード: ネットワーク

<<:  Googleがユーザーに注意喚起:リンクの交換はPRインデックスを下げる

>>:  ウェブサイトのPR価値とページのPR価値について簡単に説明します

推薦する

リンクの購入は科学であり、慎重に慎重に行う必要があります

ウェブサイトの最適化におけるフレンドリー リンクの役割は明らかです。フレンドリー リンクの品質は、ウ...

百度の技術的欠陥は、元の識別において改善する必要がある

確かに、Baiduには多くの技術的な欠陥があります。ここでは、Baiduの技術的な欠陥であると私が個...

音楽ダウンロード料金は継続:レコード会社はウェブサイトを統一せず、目立たないようにしている

音楽のダウンロードにお金を払うのは難しいです。イラスト:北京ニュースの趙斌レコード会社は統一されてお...

ITエリートが「田舎に行く」:農業のインターネット化はさまざまな結果をもたらす

IT 関係者の視点から見ると、丁磊が豚を飼育しているのは目新しいことではない。劉強東さんは米を栽培し...

JavaScript: ルールを全て破る 間違ったことが役に立つかもしれない

北京時間のこの日の早朝、 Twitter のフロントエンド エンジニアである Angus Crol ...

A5 Yuehuai: スパムリンクと戦い、ソースを捕捉 Baidu アルゴリズムは輸出リンクをターゲットに

10月23日、百度のアルゴリズムが再びアップグレードされ、ハイパーリンクの不正操作によって百度の検索...

クラウドネイティブが SaaS サービスで主流となっているのはなぜですか?

まず、オンプレミスと同じアーキテクチャを使用して、レンタルベースでクラウドで実行することで、同じ機能...

ブランドキーワードの重要性

ウェブサイトのブランドキーワード名は、一般的には会社名または製品ブランド名です。ブランドキーワードの...

Struts2 の脆弱性分析: ハッカーの攻撃と防御による公式トラブル

著者:顧暁波Appleの開発者向けウェブサイトがダウンしたことで、1週間前から公開されていたApac...

高速・ハイエンドネットワークを備えたおすすめの海外VPS

どの海外VPSを選択すればよいですか?使いやすい海外VPSはどれですか?どの海外VPSをお勧めします...

launchvps - 月額 3.8 ドル、ロサンゼルス KVM 仮想 VPS、1G メモリ、CN2 経由の China Telecom、China Unicom 直接接続

launchvpsは2009年に設立されたアメリカのVPS業者で、主にLXCとKVM仮想化をベースに...

Canonical タグによる重複コンテンツ コレクションの解決

Canonical タグは、Google、Yahoo、Microsoft などの検索エンジンが共同で...

今後、アリババクラウドはTongyi Qianwenをオープンし、各企業に独自のビッグモデルを作成します。

4月7日、アリババクラウドは「アリ版GPT」通益千聞の招待入場を発表し、大きな注目を集めた。 4月1...

クラウドホスティングは2018年に主流になる

1991 年にインターネットが誕生して以来、従来のホスティング モデルには多くの弱点があるにもかかわ...

SEOツールの使い方を正しく理解する方法

ハハ、たくさんの人が自分の経験を共有しているのを見て、私も自分の考えを共有したいと思います!大量メー...