PythonのWebクローラーはそのままURL _ Ajaxの動的なページの読み込みとページをクロールするとき

1. AJAXとは何ですか?

AJAX =非同期JavaScriptとXML。

AJAXは、高速な動的なWebページを作成するための技術です。

舞台裏のサーバと少量のデータを交換することにより、AJAXは、非同期ページの更新を行うことができます。この手段は、ことのページの特定の部分のために、ページ全体をリロードせずに更新します。

従来のWebページには、(AJAXを使用しない)あなたはページ全体の表面の内容を更新する必要がある場合は、基本的なオーバーロードされます。

いくつかの一般的に使用されるAjaxのシーン。

たとえば、ほとんどの散歩を知っている、あなたは、ページをリフレッシュしていないが、あなたは常にユーザーまたはトピックへのあなたの懸念が新しい動的メッセージプロンプトを持って見ることができます。

私たちは、ビデオを見たときにも、たとえば、あなたが以下のコメントが完全に完全にロードされて出ていないが、あなたは少し下にドラッグ見ることができる、それはあなたのロードを少し与えます。

なぜ使用AJAXを行うには?

上記のシナリオからは、その利点を見つけることができるはずです

まず、ユーザの行動を中断することなく、達成することができ、ページ全体の更新をリロードせずに、ユーザとの対話を容易にします。あなたは、ページ全体がリフレッシュされ、プログラマは、メッセージをプッシュするために、この時間をそれのオブジェクトを見つける方法を見ている、とあなたはガスガスをないと言います!

第二は、またはあなたは、プログラマがオブジェクトを見つける方法を見ているが、今回は状況が良好なコミュニケーションではありません。ロード答えが出てこない、答えはあなたが何も急いで急いでいないと言う、ロードされて出てこないことをカード上の空白のページ!ほんの少し、あなたが私を見て、その後、静かに他のデータをロードするとき、それは問題を解決できないだろう、あなたはいくつかの答えを見てみましょうそれ?ただ、トークンを食べて、あなたは料理のテーブルを注文し、料理は完全なだけでなく、その上にあなたを与えるのですか?1で確かではないうん、良いもの、それはでした。

第三には、Ajaxのデータは、比較的小さなサイズから、サーバから送信されます。ブラウザは、ブラウザで、クライアントは、タスクの一部を想定して、このようにサーバー上の圧力を低下させる、それをレンダリングする方法を知っています。

Ajax技術がコアであるのXMLHttpRequestオブジェクト(略してXHR)は、ページのレンダリングにデータを挿入するデータ・サーバーにXHRオブジェクトを使用することによって得られ、その後、DOM経由することができます。名前はXMLに含まれますが、関係なく、データ形式のAjaxの通信しているが、私たちは、XMLやJSON形式などのデータ・フォーマットすることができます。

バックグラウンドでサーバとのデータ交換にはXMLHttpRequestオブジェクト、具体的な効果は、次のとおりです。

  • ページをリロードせずに更新ページ
  • ページが読み込まれた後、サーバーからのリクエストデータ
  • ページが読み込まれた後、サーバーからデータを受信
  • バックグラウンドでデータをサーバに送信します

 

2.アヤックスは爬虫類に影響がありますか?

あるいは、上記のシナリオに対応した、私は確かに爬虫類に完全なデータをクロールします。しかし、一度あなただけの私のオブジェクトを検索する2つの方法を教えました。私は、全体が、それはいくつかのスクリプトは、このようなデータが不完全であり、総合的に十分なを持っていないことがありますその場合には、十分ではありません判断します。しかし、ブラウザをスライディングない、データがどのように行うには出てきませんか?

より多くのピットの父、私たちの国へのブラウザによってレンダリングされたデータのうち、AJAXロードが何であるか、ソースコードは、私たちが望むデータを見つけることができない場合があります。腫れはそれを行います!ブラウザがロードする方法を知っている、我々はそれを知りません!

 

3.どのようにクロールされたページなどのAjaxの動的ロード。

1.セレン+ PhantomJs

PhantomJSは、フリーインターフェースはWebKitのブラウザエンジンをスクリプトことがあります。DOM操作、CSSセレクタ、JSON、キャンバス、およびSVG:それはウェブ標準のさまざまなネイティブサポートです。その役割は似ており、ブラウザがページのjs治療をレンダリングすることができます。

それはどのようなセレンのですか?これは、テスト自動化ツールとなってますが、ユーザーのAHの爬虫類幅広いことができました。これは、コードのブラウザで動作することができますツールです。たとえば、ブラウザの下落などを制御します。それを知るために前にしかし、私は、非常に精通していないです。

しかし、私はこの方法を使用していませんでした。なぜ、遅いので。ブラウザが唱え多く、何回まで追加動作していない、と彼らは良い方法ではありません。

本当の要求を見つけ、自分自身を見つける2。

長いデータを介して送信されると、それは間違いなく、サーバーに送信された要求です。私たちは、本物のリクエストが送信されたページをロードするために静かにそれを見つける必要があります。

 

探している相手例:クロールフライト情報杭州蕭山空港の日。

 

1)の表示ページのソースコードを右クリックし、「詳細を見る」新興なしフライト情報の後にページのソースコードをそのクリックを見つけたので、それはAjax技術を使用することであると思います。Wiresharkのと最初のパッケージをつかみます。

転送2.ルックのXMLHttpRequestオブジェクトパラメータ。ビジュアルサーバがデータ転送を選択するために、p値に基づいています。

 

 

JSON形式の検出:http://www.bejson.com/

原文链接:https://zhuanlan.zhihu.com/p/27346009

おすすめ

転載: www.cnblogs.com/NiBosS/p/12088651.html