この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 585936|答える: 70

[コンソールプログラム] .net/c# ウェブクローラー最適化への道

  [リンクをコピー]
掲載地 2018/04/19 14:21:02 | | | |
0x00

ウェブクローラー(ウェブスパイダー、ウェブボットとも呼ばれ、FOAFコミュニティでは一般的にウェブチェイサーと呼ばれる)は、特定のルールに従ってワールドワイドウェブに関する情報を自動的にスクレイピングするプログラムやスクリプトです。 他にあまり使われない名称には、アリ、オートインデックス、シミュレーター、ミミズなどがあります。

0x01

簡単に言えば、クローラーは独自のルールに従ってデータを取得し、それを分析して自分たちの有用なデータを取得します。

0x02

ウェブクローラーの最適化は、2つの段階に分けられます:

1: データのスクレイピング時の最適化;

2: 把握結果の処理を最適化すること;

今日はスクレイピングプロセスの最適化について話します!

0x03

クロールプロセスの最適化についていくつか要約しました:

1:物理的なアドレスで最適化できます。例えば、ターゲットリソースサーバーは上海のTencent Cloudホストです。同じ地域、つまり上海地域のサーバーを選択しようとします。北京や青島、その他の地域のサーバーは選ばず、同じIDCコンピュータルーム内のサーバーも選びましょう。このリソースサイトがTencent Cloudのサーバーであることは分かっていますが、クローラーはTencent Cloudのサーバー上に置くようにしていますが、Alibaba Cloudのサーバーには置かないようにしています!

2: 安定して高速なネットワークを選ぶ。一般的にクローラーはネットワーク品質に高い要求がある。家庭用ネットワークは使わないようにし、会社のネットワークを選ぶか、データをキャプチャするサーバーを購入する。

3: より効率的なクローラー言語を選ぶ。Pythonの方がクローラーに優れていると聞きましたが、使ったことがなく、後でテストします。今日は主に.net言語で説明します。

0x04

急ぎの購入のような場合、取得速度の要件は高く、時間の問題と説明できます。データを早期に取得し、取得の可能性を高めることです。以下はコンソールでデモを書きました。このウェブサイトのデータ取得テストを下の図に示しています。


(時間が短いほど速い)

上記のデータランキング:1: ネイティブ最適化されたコード、2: ネイティブコード、3: サードパーティプラグインDLL(パッケージ)

0x05

なぜサードパーティのプラグイン(パッケージ)は一番時間がかかるのでしょうか? サードパーティのプラグインは実際には多数のネイティブコードのカプセル化、多数の論理判断、そして比較的多用途であるため、クロール速度が遅くなることがあります。

こちらがネイティブコードです:



ネイティブコードはそのすぐ上の数行に載っています。平均時間は依然として184ミリ秒です。コードが単純であればあるほど、最適化は難しくなります上記のコードを平均99ミリ秒の時間に最適化するにはどうすればよいと思いますか?速度差が倍増した!

0x06

ターゲットリソースサーバーがgzip圧縮をサポートしている場合、ウェブサイトにアクセスしブラウザがリクエストした際、リクエストヘッダーには以下のパラメータが設定されます。

レスポンスヘッダーパラメータ:






「受理符号化」の導入:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding

平たく言えば:

クライアントはこう述べています:「gzip、deflate、sdch、br」圧縮アルゴリズムをサポートしており、データリターン時に好きなものを使っています。

サーバーはこう言いました:私はgzip圧縮アルゴリズムをサポートしているので、そのアルゴリズムを使ってデータを圧縮します

クライアントはこう述べています:では、受信したデータをgzipアルゴリズムで復号します

gzipアルゴリズムは、送信データを圧縮し、送信内容を大幅に削減できるため、リクエスト効率が向上するため、最適化されたコードは以下の通りです:


小さな細かい点ですが、効率は倍増したと言っても過言ではありません! これは2日間で集めたデータに相当し、今では1日で収集できるようになり、この記事はハイハイを学ぶ友人たちに捧げられています。

注:gzip圧縮アルゴリズムはプログラミング言語とは関係ありません!

最後にソースコードを添付します:

観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ答える

スコア

参加者数2MB+1 貢献する+2 倒れる 理由
コンテントフス + 1 とても強力です!
学ぶのが大好きな小さな初心者 + 1 + 1 オーナーが良い投稿をするのを応援してください。私も良い投稿をします!

すべての評価を見る





先の:国際的な慣行の新規参入者報告が公開されました
次に:.net/c# 次世代CAPTCHA認識システム2.3チュートリアル
掲載地 2019/12/31 10:48:25 |
小白は傷つくわけにはいかなかった。 ビッグデータをワンクリックで収集できるようなソフトウェアはありますか?
掲載地 2019/06/10 14:11:09 |
小白は傷つくわけにはいかなかった。 ビッグデータをワンクリックで収集できるようなソフトウェアはありますか?
掲載地 2019/10/15 10:29:57 |
ガンジュエティンハオワンデ・カン
掲載地 2018/04/20 12:35:21 |
共有してくれてありがとう
掲載地 2018/04/25 11:33:55 |
コレクション、もしかしたら役に立つかもしれない。
掲載地 2018/05/17 18:02:21 |
ウェブクローラー最適化への道 コレクション
掲載地 2018/05/18 16:10:57 |
掲載地 2018/07/18 14:43:07 |
うまくいくか試してみて
掲載地 2018/07/20 10:09:50 |
ダダスサッド
掲載地 2018/08/13 13:06:50 |
このソースコードをチェックしてください
掲載地 2018/08/20 14:00:52 |

共有してくれてありがとう
掲載地 2018/08/30 11:42:26 |
srkskrskrskrskr
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com