爬虫類プロセス

爬虫類プロセス

Webクローラープロセスは、実際には非常に簡単です

これは、4つの部分に分けることができます。

1を開始要求

HTTPライブラリを通じて標的部位への要求を開始し、すなわち、リクエストを送信すると、要求は追加のヘッダ、データ及びその他の情報が含まれているし、サーバーを待っていることがあります。私たちは、ブラウザを開いて、ブラウザのアドレスバーにURLを入力してこの要求を処理:www.baidu.comして、Enterをクリックします。ブラウザクライアントがサーバーに要求を送信し、このプロセスは、実際のブラウザと同等です。

2応答を取得

サーバが正常な応答することができた場合は、私たちが買ってあげるResponseResponseコンテンツを取得するコンテンツである、型であってもよいHTMLJson文字列、バイナリデータ(画像、ビデオなど)および他のタイプ。このプロセスは、サーバーがWebブラウザに送信されたパースに行ったことがクライアントの要求、受信されHTMLたファイルを。

3解析内容

結果のコンテンツであってもよいHTML、あなたは正規表現を使用することができ、解決のためのページ解析ライブラリ。それはかもしれJson、あなたが直接にできるJsonオブジェクトの解析。これはバイナリデータであってもよいし、さらなる処理のために保存することができます。このステップでは、ローカルのファイルサーバに到達するために、ブラウザに対応して、説明と表示します。

4データの保存

保存モードは、テキストデータとして保存することができ、データのようなMP4形式、データベースに保存、またはファイルの特定のJPGに保存することができます。これは、我々は、Webページ上のWeb、ダウンロード、写真や動画を閲覧する場合と同等です。

リクエスト送信要求

あります:GET / POSTはHEAD / PUT / DELETE / OPTIONSに加えて、一般的に使用されるの2種類があります

GETとPOSTの違いがある:GETリクエストは、URL内のデータは、POSTは、ヘッド部に配置されています


私たちはURLのユニフォームリソースロケータは、場所やアクセス方法から、インターネット上で利用可能なリソースの一種であるシンプルで言うことであるURL、またはユニフォームリソースロケータは、標準は、インターネット上のリソースのアドレスであると述べました。

インターネット上の各ファイルには、固有のURLを持っている、それが含まれている情報は、ファイルブラウザの場所を示すと、彼らはそれをどのように扱います


URLの形式は、3つの部分からなる:最初の部分は、プロトコル(あるプロトコルタイプ)。リソースの第二部は、そこにホストのIPアドレス(あるホストドメイン名)。第三部は、ホストリソース(特定のアドレスであるファイル名)。

リクエストヘッダ

要求は、ユーザエージェント、ホスト、クッキー情報として、ヘッダ情報が含まれている場合

リクエストは、フォームデータフォームデータを送信するなどのデータを、搬送要求体である(POST)

HTTPプロトコルの紹介

レスポンス取得応答には何が含まれています

最初の行の全てが互いにスペースで区切られた、HTTPの現在のバージョンに続いてHTTPレスポンスステータスライン、3桁のステータスコード、およびフレーズの状態の説明です。

レスポンスステータス

200名の成功、301回のジャンプ、404ページが見つかりません、502サーバーエラー:のような応答状態、の様々なものがあります

レスポンスヘッダ

クッキー提供されるコンテンツタイプ、長型、サーバ情報、

レスポンスボディ

最も重要な部分は、コンテンツがなどのWeb HTML、画像、バイナリデータとして要求されたリソースを含み、

Webページのテキストは:他の同じバイナリファイル:画像フォーマットのビデオとして保存、バイナリファイルに入る:HTMLドキュメントとして、JSONはテキストや他の画像をフォーマットされた限りの要求として、あなたが得ることができます

HTTPプロトコルの紹介

データを解析する方法

直接取引

JSONの構文解析

正規表現の処理

BeautifulSoup分析処理

PyQuery分析処理

XPathの構文解析処理

参照するには、同じ問題クロールないページとデータブラウザについて

データサイトの多くがそうブラウザから直接アクセスがページを要求し、異なる表示します、JS、AJAXの動的ロード経由であるため、これが発生します。


問題JSレンダリングを解決する方法は?

分析アヤックスセレン/ webdriverをスプラッシュPyV8、
データを保存する方法

テキスト:プレーンテキスト、JSONやXMLなど

データを保存する方法

リレーショナルデータベース:構造化mysqlのは、Oracle、SQL Serverデータベースなど

非リレーショナルデータベース:MongoDBは、Redisのと他のキーと値のストアフォーム

データベースの使用

おすすめ

転載: www.cnblogs.com/wow-santa/p/12115046.html