Pythonのクローラベース(1)

  • 一般的なパラメータ要求ヘッダー

HTPプロトコルでは、サーバは、第二の本体は、(ポスト要求内のデータ上に配置される第一ウルのデータであり、データは、アイランド・ポイントに分割され、要求を送信する
要求)、第それは、頭の上のデータです。:ここではリクエストヘッダクローラのパラメータの一部は頻繁に使用されている
1 のUser-Agent:ブラウザ名、これは多くの場合、ネットワークのクローラを使用するようになります。このパラメータを介してサーバが要求を知ることができる2ページの要求は、 どのようなブラウザによって送信されました。私たちは爬虫類でリクエストを送信している場合は、私たちのユーザー4gentはする抗クローラ機構を持っているサイトのためのPython、である と言うが、あなたは簡単にこの要求が爬虫類あるので、我々は常に力の碑文の値を交換する必要がありますを伝えることができます私たちの爬虫類偽装するために、ブラウザの値は、
2 リファラーは:その後、していない、この要求がどのUR1から来ているときに、指定したページから来ていない場合は、この一般的にはまた、抗クローラー技術を作るために使用することができることを示し 、関連する操作を行います応答
3. クッキー:HTPプロトコルはステートレスです。これは、要求を送信するために二度同じ人で、サーバが同じ人-ので、これからこれら2つの要求かどうかを知ることができるではありません あなたがアクセスにログインしたい場合は、時間がクッキーの識別でそれを行う、サイトは一般的に、それはコークスを送信する必要がありません情報
  • 一般的な応答ステータスコード

1. 200がある:通常の要求、データ・サーバは、通常のを返します。

2. 301:永続的に再尋ねました。アクセスしたときよりも、プラスw.jangdong.com w.Jd.cmsにリダイレクトされます

3. 302:そのようなレコードへのアクセスなど、一時的なリダイレクトがときに、ページに設定する必要がありますが、今回は、ログインしていない、あなたは尋ねるために、ログインページにリダイレクトされます

4. 400:サーバー上で見つけることができません要求されたW1。言い換えればUR1エラーを要求

5. 403:サーバーシュリンクケアへのアクセス、アクセスが十分ではありません

6. 500:内部サーバーエラー。サーバーは、バグを表示されることがあります

 

  • urllibはライブラリ ur1lib Pythonライブラリは、基本的なネットワーク要求ライブラリです。ブラウザの動作をシミュレートすることができ、それは指定されたサーバーに要求を送信し、サーバから返されたデータを保存することができます
  • urlopen機能:

ライブラリurllibはPhon3では、すべてのネットワーク要求および関連する方法は、床、基本的な使用urlopenを初めて目へのお願い以下のモジュールをurllibはするように設定されています。

以下からのInport要求urllibは
resp.reqvest.urlopen(" http://www.baidu.com " プリント(RESP。reado)

実際には、右のソースコードを表示、百度にアクセスするためにブラウザを使用して、あなたは私たちだけのデータがまったく同じであるプリントアウトができます。言い換えれば、上記のコードの3行は、百Baiduが降り、すべてのコードを置くために私たちを支援してきました。詳細は以下の機能を説明するのはとても簡単なurlopen基本的な要求URLをPythonコードに対応します:

1.url:URL要求

2.Data:ネット値は、それがポスト要求になることを想定して、DTAを要求

3.戻り値:オブジェクトの値を返し、オブジェクトは、クラスオブジェクトは、ファイルハンドルリード(SZE)、readlineの、readine等のgetcodeを有しています

 

  • urlretrieve機能
この数は、簡単にWebページ上のローカルファイルに保存することができます。次のコードは、簡単にローカルにダウンロード百のBaiduの飛チャンことができます:
urllsb インポート要求
request.urlretrieve(' ://www.baiducom/は、http ' baidu.html " 
  • でurlencode機能:

意思決定のブラウザで要求を送信する際のURLは、中国や他の特殊文字が含まれている場合、ブラウザが自動的に私たちにエンコードされます。コードの送信要求を使用している場合、それは手動で符号化されなければならない辞書データが符号化されたデータのURLのサンプルコードに変換することができるURLENCODE、この時間は、でurlencodeを達成するために使用されるべきである以下の通りであります:

urllibはのInport解析

データ = {「名前」:「爬虫」' 、 『挨拶』: "HE1のLOワード」、『年齢』:100} 適量= parse.urlencode(データ)
 の印刷(QS)

parse_qs機能は、符号化パラメータuの後に復号することができます。

 

  • proxyHandlerプロセッサ(セット剤)

訪問多くのサイトは、時間IP(玲統計、システムログ、などによって)、訪問の多くの普通の人のような数は、それがIPはそう、我々はいくつかのプロキシサーバーを設定することができますアクセスを禁止する場合は、それぞれの一定期間を検出しますプロキシの時間までの時間から、IPが無効になっている場合でも、あなたはまだIPがにproxyHandlerを使用して、プロキシサーバーを設定するには、urllibはでクロールを続け変更することができ、次のコードは、プロキシを使用するカスタムオープナーを使用する方法を示しています。このプロキシが使用されていません

urllibはインポート要求

これはプロキシを使用することではありません
。#RESP = request.urlopen( "http://baidu.com") 印刷(resq.readを()。( "UTF-8")をデコードする)

これは、の使用でありますエージェント 
ハンドラ= request.ProxyHander({ " HTTP "" 218.66.82:32512、" })

オープナー = request.build_opener(ハンドラ)
REQ = request.Request(" http://www.baidu.com " 
RESP = opener.open(REQ)
 を印刷(resp.read())

 

おすすめ

転載: www.cnblogs.com/toling/p/11300207.html