爬虫類プロセス
Webクローラープロセスは、実際には非常に簡単です
これは、4つの部分に分けることができます。
1を開始要求
HTTPライブラリを通じて標的部位への要求を開始し、すなわち、リクエストを送信すると、要求は追加のヘッダ、データ及びその他の情報が含まれているし、サーバーを待っていることがあります。私たちは、ブラウザを開いて、ブラウザのアドレスバーにURLを入力してこの要求を処理:www.baidu.comして、Enterをクリックします。ブラウザクライアントがサーバーに要求を送信し、このプロセスは、実際のブラウザと同等です。
2応答を取得
サーバが正常な応答することができた場合は、私たちが買ってあげる
Response
、Response
コンテンツを取得するコンテンツである、型であってもよいHTML
、Json
文字列、バイナリデータ(画像、ビデオなど)および他のタイプ。このプロセスは、サーバーが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レスポンスステータスライン、3桁のステータスコード、およびフレーズの状態の説明です。
レスポンスステータス
200名の成功、301回のジャンプ、404ページが見つかりません、502サーバーエラー:のような応答状態、の様々なものがあります
レスポンスヘッダ
クッキー提供されるコンテンツタイプ、長型、サーバ情報、
レスポンスボディ
最も重要な部分は、コンテンツがなどのWeb HTML、画像、バイナリデータとして要求されたリソースを含み、
Webページのテキストは:他の同じバイナリファイル:画像フォーマットのビデオとして保存、バイナリファイルに入る:HTMLドキュメントとして、JSONはテキストや他の画像をフォーマットされた限りの要求として、あなたが得ることができます
データを解析する方法
直接取引
JSONの構文解析
正規表現の処理
BeautifulSoup分析処理
PyQuery分析処理
XPathの構文解析処理
参照するには、同じ問題クロールないページとデータブラウザについて
データサイトの多くがそうブラウザから直接アクセスがページを要求し、異なる表示します、JS、AJAXの動的ロード経由であるため、これが発生します。
問題JSレンダリングを解決する方法は?
分析アヤックスセレン/ webdriverをスプラッシュPyV8、
データを保存する方法テキスト:プレーンテキスト、JSONやXMLなど
データを保存する方法
リレーショナルデータベース:構造化mysqlのは、Oracle、SQL Serverデータベースなど
非リレーショナルデータベース:MongoDBは、Redisのと他のキーと値のストアフォーム