爬虫類の戦い

Webクローラーの基本原則

あなたは、爬虫類や一般的なプロセスの基本原則を置くことを始める前に:

  1. 最初のURLを取得します。
  2. 初期クロールページのURLによると、新しいURLを取得します。クロールページは新しいURLアドレスを発見し、そのクロールされているが、データベースに格納されたデータを分析するために必要なウェブやデータのURLアドレスに対応するURLアドレスをクロールし、 URLはクロールリストに保存されている、とクロールのプロセスを決定するために再使用されてきました。
  3. URLキューに新しいURLをクロールします。
  4. クロールURLキューから新しいURLを読み込むことができます。クロールの上記のプロセスを繰り返します。
  5. 停止条件を設定し、クローラシステムが満たされた場合、停止がクロール。

ウェブクローラは、問題を解決する必要があります。

まず、公開ウェブサイト/サイトかどうか?(=あなたは、ログインする必要がありますか?)

クッキー3、セッション2、1:各ユーザーにラベルを付ける方法ですログオンする必要はありませんのIP、 アドレス。
にログインしている目的は何ですか?(=ログインすることが必要ですか?=あなたがするたびにログインする必要がありますか?)
するたびにサインインして、(=コード)にログインする方法

第二に、どのようにページがロードされていますか?(=ダイナミックローディング問題)

内部1、HTML 2、JSON:必要なデータは、に見出すことができる場合。
レコードが動的なAjaxのであればどのようにしますか?

第三に、あなたはどのように要求されたページ要求を指示することができますか?(=どのようにリクエストヘッダ構造?コンテンツ=リクエストヘッダが必要なのか?)

どのように優雅に爬虫類

精度:データの各バイトへの要求は、我々は、余分なゴミを要求しない、欲しいものです。
スピード:最適なデータ分析戦略で、再チェックポリシー、ストレージ戦略。
安定性:クラッシュの後、完全な例外処理メカニズムのブレークポイントの再起動。
品質:決しては、標的部位の正常な動作に影響を与えます。

フェッチ戦略

クロールURLキューまで爬虫類系では非常に重要な部分です。それはどのような順序でURLの内部を含むので、そのページをクロールするページへの重大な問題の後に、これらのURLメソッドの順序を決定、戦略をクロールと呼ばれます。以下は、いくつかの一般的なクロールの戦略に焦点を当てています。

1.深さ優先トラバーサルポリシー

深さ優先探索戦略は、Webクローラーがリンクへのリンクを追跡した後、次のスタートページに移動し、その後、スタートページから始まります、リンクをたどるし続ける、この行を終了しました。
トラバーサルパス:AFG EHI BCD

2.幅優先トラバーサルポリシー

基本的な考え方の幅最初の横断戦略は、直接キューをクロールするURLの末尾に挿入されることがわかっ新しいダウンロードページをリンクすることです。また、スタートページにリンクされているすべてのページをクロールして、リンクページのいずれかを選択し、このページ上のリンクのすべてのページをクロールしていきますWebクローラーを指します。または例として、上図の:

トラバーサルパス:ABCDEF GHI

3.バックリンク戦略の数

バックリンクの数は、ページ数が他のページへのリンクです。バックリンクの数が他の人々の広がりによって、ウェブページの勧告の内容を示します。そのため、システムをクロール何度も検索エンジンは、注文クロール異なるページを決定し、ウェブページの重要性を評価するために、このインジケータを使用します。

実際のネットワーク環境では、広告リンク、リンクカンニング、彼はまた、重要度を完了するのを、私は待つことができないバックリンクの数が存在します。そのため、検索エンジンは、いくつかの固体バックリンクを検討する傾向があります。

4.Partial PageRankの戦略

部分のPageRankアルゴリズムは、PageRankのアルゴリズムのアイデアに描画します:すでにダウンロードしたWebページの場合、ウェブページの集合を形成し、クロールするURLキュー内のURLとともに、各ページが完了した後に計算のPageRank値、計算され、クロールURLキューになりますURLのPageRank値はサイズに応じて配置し、この順でページをフェッチします。

我々はページをクロールするたびに、我々はページランクの値を再計算した場合、妥協は次のとおりです。各クロールKページの後、PageRankの値を再計算します。しかし、このような状況は問題があります:分析では、我々は何のPageRankの値であることない時間のために、パート先に未知のWebページを言及したページへのリンク、のためにダウンロードされています。この問題を解決するために、我々はこれらのページに一時的なPageRankの値を与える:このページでは、このように、未知のページのPageRank値を形成し、集約すべてのチェーンのPageRankの値に渡されたので、並べ替えに参加されます。次の例:

5.OPIC政策方針

このアルゴリズムは、実際にページ上の重要度スコアを運ばれます。このアルゴリズムは、同一の初期現金(現金)に、すべてのページを開始する前に。ページPをダウンロードした後、Pはすべてが現金を空にPおよびPからのリンクを解析してキャッシュアウトするために配分されます。すべてのページのために現金の数でソートするURLキューをクロール。

6.主要駅優先戦略

キュー内のすべてのページのURLは、サイトが属しているによると、クロール分類されます。ページ数のために最優先で、ダウンロードされ、より多くのサイトします。この戦略は、したがって、主要駅の優先戦略と呼ばれます。

プロセスを考え爬虫類のセット

約抽出されたデータ、上記図中、すなわち第一の層は、以下の戦略:

ログ解析:

目的は二つにログイン

最初は、データアクセスページが等しくないで、データのセキュリティを確保することで、異なるユーザが異なる権限を持ち、各ユーザーは、QQスペースに似てアップロードまたはプライベートデータを共有することを選択できます。
第二は、このページ、ユーザーのセキュリティを救済するために、一般のWebプロファイル」であり、各ユーザーは、サイトの機能へのアクセス権を持っているが、そのデータは、アリペイに似損なわれることはありません。
クッキーとは、Web開発があった場合こちらセッション(:各サイトのログイン操作が異なりますが、クローラを防止するために、主要なサイトが何かをするということができますが、Webシステムでは、ログイン状態を維持するためには2つだけです経験は十分に)理解されているので、私たちはちょうどクッキーをシミュレートし、対応するサーバは、すでに「幻想」のサーバーにログオンすることができます価値を認識します。しかし、いつもあなたは、ログイン後に生成クッキーを取得するには、一度サインインする必要があります。だから、次の質問は、ログオンする方法です。

ログイン戦略:

署名するときに誰もが検証コードよりも多くの法外なものではないではありませんしましょう。実際には、このような画像の識別コード、自動スライディング検証コードとして多くのオンライン公共政策は、あります。しかし、最も難しいの電話確認コード。

しかし、私は、これらの方法ではないと言います。

私たちは、多くの場合、QQのログインを使用することを見るように今、国内のネットワーク環境では、BATは、彼らの手は、多くの場合、彼らと協力して、サイトのしきい値を小さくするために、多数のユーザが、すべてのサイトの多くをつかんで、大きな生態系のようなものですその上ログインまたはマイクロ文字、淘宝網のログイン、および。だから我々は、直接これらのインターフェイスは、ログインアクセスすることができ、かつ自動的に非常に成熟したとして記述することができ、これらのサイトのポリシーにオンラインログインします。

建設の要求:

    'Host': 'search.originoo.cn',
    'User-Agent':' Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0',
    'Accept':' application/json, text/javascript, */*; q=0.01',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'Accept-Encoding': 'gzip, deflate',
    'Referer':' http://www.originoo.com/ws/p.topiclist.php?cGljX2tleXdvcmRzPeW3peS6uiZtZWRpdW1fdHlwZT1waWMtdmVjdG9y',
    'Content-Type':' application/x-www-form-urlencoded; charset=UTF-8',
    'Content-Length':' 213',
    'Origin': 'http://www.originoo.com',
    'Connection': 'keep-alive',
    'Cache-Control':' max-age=0',
     'pic_keywords':'%E5%B7%A5%E4%BA%BA',
     'medium_type':'pic-vector',
     'pic_quality':'all',
     'sort_type':'4',
     'pic_orientation':'',
     'pic_quantity':'',
     'pic_gender':'',
     'pic_age':'',
     'pic_race':'',
     'pic_color':'',
     'pic_url':'',
     'user_id':'0',
     'company_id':'0',
     'page_index':str(i),
     'page_size':'40'

これは、要求はいどのようなデータであることを示し、この要求を戻すためのPOST特性パラメータであり、典型的なPOSTリクエストのヘッダです。

すべての要求は、要求されたコンテンツをサーバに応じて決定され、サーバー複雑な設計に長いわけではありません、それは適切な要求が非常に複雑になり、またその逆であります:

= {「キーワード」:「労働者」、データ
「カラー」:「0」、
「タイプ」:」6"
}
上記サイトPOST要求データ部分です。

実際には、リクエスト検証サーバとの複合体は、例えば、多数のパラメータを発生します。

ヘッダが= {
'ホスト': 'dpapi.dispatch.paixin.com'、
'ユーザーエージェント': 'のMozilla / 5.0(X11;のUbuntu、Linuxのx86_64で、RV:65.0)のGecko / 20100101 Firefoxの/ 65.0'、
'受け入れます' : 'アプリケーション/ JSON、text / plainで、/ '、
'言語を受け入れ':ZH 'ZH-CN、; Q = 0.8、ZH-TW; Q = 0.7、ZH-HK; Q = 0.5、EN-US。 Q = 0.3、EN; Q = 0.2' 、
'符号化受け入れ:BR '収縮、GZIPを''
'リファラー': ' https://v.paixin.com/media/photo/standard/%E5%B7 %A5%E4%BAの%のBA / 1 '
'コンテンツタイプ': 'アプリケーション/ JSON;のcharset = UTF-8'、
'のContent-Length': '43'、
'起源':' https://でV .paixin.com '
'接続':'生き続ける'、
'クッキー':「Hm_lvt_8a9ebc00eda51ba9f665488c37a93f41 = 1552048374 ; Hm_lpvt_8a9ebc00eda51ba9f665488c37a93f41 = 1552048386; Qs_lvt_169722 = 1552048378; Qs_pv_169722 = 4547593134179576000% 2C332112608763589300; Hm_lvt_f72440517129ff03cc6f22668c61aef3 = 1552048378; Hm_lpvt_f72440517129ff03cc6f22668c61aef3 = 1552048386; _ga = GA1.2.1067225704.1552048380; _gid = GA1.2.1727359604.1552048380; _gat = 1 」、
『のCache-Control『:』MAX-年齢= 0』、
}
Cookieリクエストヘッダの値が明確に表示されていない、これがあるため、実際には、我々は、いくつかの不可解なパラメータは、キャプチャ時の恐怖を感じることはありません見ます彼らは自分自身のネーミング・メソッドと戦略を持って、書くために他のプログラマは、私たちは、この値は、その上でなければならないかどうかを確認することができます。この方法は、あなたが通常要求できる場合は、その後、削除し続けることができるかどうか、参照、パラメータの一部を削除するためのすべての要求に簡単ですし、次にあなたがアクセスすることができない場合には、未知のにアクセスすることができないまで要求し、それはあなただけ削除したパラメータが非常に重要であることを示しています、行くためにこの時間はこのパラメータのソースを見つけます。

参考:
アイデアを書い一般爬虫類Vision_Tung:https://blog.csdn.net/Vision_Tung/article/details/88591726

おすすめ

転載: www.cnblogs.com/lskreno/p/11521343.html