Pythonの爬虫類よくある質問

最初の質問:JS暗号を破る方法

(1)機能ごとにChromeデベロッパーツールをマスター、要素、ネットワーク、ソース

(2)注意深く観察、思考が得意。不審なXHRリクエスト、XHRセットブレークポイント、プロセスをトレースバックを探してネットワークビューロードプロセスは、JSコールスタック、側面背面ビューコンテキストコードによって行われます。読むことができますJSが、そのようなウィンドウjsの変数の内部として、JS-関連の知識を知っています。

(3)上記のコードのデバッグのJS JSの暗号化と復号化によって発見され、その後、Pythonが再実装、このプロセスは非常に長いです、それはあなたのPython実装を変更するには、サイトのjsアルゴリズム一度使用することはできない、数日間あなたを要するかもしれません。

(4)簡単なセレンを破ることができる、そしてサイトがちょうど問題ではありません。唯一の後悔は、セレンの貧弱な作業効率です。しかし、データのサイトを保護するためのjs使用暗号化として、単価の動作効率は、アクセス制限部位の頻度を満たすのに十分であるべきです。このとき、より多くの思考は、クロールの効率を改善するためのリソース(IP、口座番号)を大きくする方法です。


2番目の質問、マルチスレッド、コルーチン、マルチプロセスを選択

(1)クローラがオンラインアクセスを費やした時間のほとんどは、それはマルチプロセスのWebクローラに適した、マルチスレッドではありません、IO集約型の作業で、非同期IOのコルーチンがより適しており、非同期IOが最も適している、それはより多くのと比較されスレッドは、小さいコルーチン間のコストを切り替え、我々は非同期IOはなくマルチスレッドの使用を提唱します。非同期IOモジュールは、主に以下のとおりです。aysncio、aiohttp、aiomysqlなど。

(2)所望のデータを抽出するためにページを下に登った後、この時間は同時マルチプロセスを用いて抽出することができ、CPU集約的です。

(3)当社の戦略は、爬虫類、爬虫類だけで登ると、データベースに保存されたHTMLを、保存するために降りることをお勧めします。そして、単独の書き込み抽出データの抽出、抽出の実行別途。利点は抽出が、クロールに影響を与え、より高い効率を登ると、抽出手順は、いつでも変更することができないということである、新しい抽出要件クロールを再度する必要はありません。もともと爬虫類の2つのページを書いたときたとえば、データを抽出したい、いくつかの時間のために実行した後、あなたがHTMLを保存する場合は、もう一度うまく抽出の再実行を変更するために変更する他の3データも有用である発見しました。


3番目の質問、あなたが目標とハンドルにそれを正規表現を書くことだけ鉱業法によって、元の画像や大胆な位置を維持したい場合は?

正規表現、XPathの:Webデータの抽出は、主に二つの方法があります。XPathは、HTMLタグのノードを介して得ることができます。例えば、ブログページ、その内容はdivのかもしれラベルの対象となっています。XPathはこのdiv要素を取得するには、HTML、形式に変換し、それはあなたがこのhtmlコードの代わりに、うまくプレーンテキストを保存するいくつかの写真が含まれています。


第四の問題、増分クロール爬虫類、再開登る、重複排除など

(1)URLのプールの概念によってURLの全てを管理します

(2)インクリメンタルクロールではなく、再ダウンロードが既にダウンロードされているため、プールのURLが既に前にダウンロードしたそれらのURLを覚えています。

(3)クロールを再開し、クロールされていないURLのURLのプールを覚えている人たちを聞かせて、クロールし、このURLの最後にされていませんクロールし、

(4)クローラは、重複したクロールを避けるために、URLにURLプールレコードの状態を再作成します。


第五質問、展開が爬虫類を発行し、同社が配布されていないクローラーシステムは、より多くの展開を伴います

クローラの展開は、必ずしも分散していません。ターゲットサイトのクローラーの限界を破る大規模な爬虫類は、利益がクロール速度の増加が配布され、配布さを伴うだろうが、管理がより複雑になります。


第六の質問は、自動的にWebページを解析しますか?このトピックでは、多くのサブタスクが含まれています。自動的に記事の内容を抽出する方法、時間フォーマットの様々な対処方法、ページを処理する方法

抽出(1)記事の内容を、各ページがテンプレート抽出(正規表現)を作成することが不可欠である、利点は、正確な抽出することで少しリビジョンが失敗したら、欠点は、重いワークロードです。単一のアルゴリズム抽出手順を確立することによって、基本的にそれを抽出することができるが、そのような読み取りに関連するテキストの終わりのような不純物を、そこに書き込むことができます。利点は、限定改正せずに、その一度、すべてのです。

抽出(2)時間、正規表現に加えて、特に効果的な方法がないようであったより。

(3)ページを、とのみをクロールた場合に抽出されたページのURLを把握していき、Webページにコンテンツを抽出するために合併時に複数のページを作成する方法、それは特別な治療をしています。


質問7、テキストが再クロールするときに、同じニュースを行う方法を、ニュースサイトを登りながら、さまざまなウェブサイトは、お互いを再現

その他の周知のアルゴリズム、Googleのsimhashが、実際にはもっと複雑です。ネットワーク伝送Baiduの練習は、最長の文(または文)で、物品のハッシュを行い、ハッシュ値の表現のみが記事(指紋)で、この方法は非常に高い正解率であるが、再現率が最もそれ一度、比較的低いです長いいくつかの単語は、単語想起を変更しません。私は、この方法を改良し、n個の単語の最も長い文は、それぞれ一意性を決定するためにN個の指紋によって紙(指の指紋が示すように同一人物でない)ハッシュありません。精度と再現率はかなり良いです。


第八質問、爬虫類非同期設計

(1)良いURLの経営戦略、Webサイトのプールの猿の学校に関連した記事を参照してください。

その後、プールから取り出し、ちょうどプールから、プールに新しいURLを抽出するために、ダウンロードのHTMLをダウンロードするためのURLから削除爬虫類は、ダウンロードが成功したかどうか、URLのURLを告げ、モデル - URLプールは、「消費者のプロデューサー」でありますURLでダウンロード。URLプールは、コア部材、URLの記録異なる状態であります:

(A)正常にダウンロード

(B)のダウンロードに失敗しましたn回

(C)ダウンロード

すべての池には、重複ダウンロードを避けるため、URLを追加するときに、プール状態へのURLをチェックする必要があります。

(2)優れた非同期コルーチン管理戦略を、学校のウェブサイトの猿の記事の巨大な爬虫類の非同期のニュースを参照してください。

Urlpool可変レコードを通してコルーチン数(ダウンロードされているページのすなわち数)、非同期n個のコルーチンを生成ダウンロード、N個のURLのそれぞれから抽出されました。

ニュース非同期巨大な爬虫類:強力な、簡単に使用できるWebサイトのプール(URLプール)を達成します

ニュース非同期巨大な爬虫類:asyncioによる非同期爬虫類

非同期URL管理は、非同期2つのURLを参照してください。

便利な、そしてちょっとハ承認ポイントを覚えています

おすすめ

転載: www.cnblogs.com/qingdeng123/p/11329746.html