Python 2のurllib,urllib 2とPython 3のurllibおよびサードパーティモジュールrequests変化解析

2505 ワード

python 3対python 2のurllibとurllib 2と合併したことで、初めて爬虫類の世界に入った小編私にとっては、ちょっとモンゴルですね.資料を調べた後、ここでurllibライブラリのpython 2とpython 3の違いをまとめました.
まず、python 2にはurllibライブラリとurllib 2ライブラリがあります.python 3ではurllib 2がurllibライブラリに統合され、Webページを登るときによく使われます.(urllibはpythonがurlを操作するためのモジュールです)
次に、python 2とpython 3でよく使用されるurllibライブラリの変更について説明します.
python 2では、urllibとurllib 2はいずれもURL要求を受け入れる関連モジュールであるが、異なる機能を提供している.2つの最も顕著な違いは次のとおりです.
1、urllib 2は、URL要求のheadersを設定するためにRequestクラスのインスタンスを受け入れることができる
2、urllibはURLのみ受け付けます.これは、User Agent文字列などを偽装してはいけないことを意味します.
urllibにはurlencodeがあり、urllib 2にはありません.これもurllib、urllib 2がよく一緒に使われる理由です.
req = urllib2.Request( 
        url=url,  
        data=postdata,  
        headers=headers  
)  
result = urllib2.urlopen(req) 

python 3では、urllib 2がurllibに結合するにつれて、いくつかの一般的な方法も変化します.
     1.python 2でimport urlparseを使用する--対応する、python 3でimport urllibを使用する.parse
     2.python 2でurllib 2を使用する.urlopen————対応するpython 3ではurllibが使用される.request.urlopen
     3.python 2でurllib 2を使用する.Request————対応するpython 3でurllibを使用する.request.Request
    4.python 2でurllibを使用するquote————対応するpython 3でurllibを使用する.request.quote
    5.python 2でurllibを使用するurlencode--対応するpython 3ではurllibが使用されます.parse.urlencode
    6.python 2でcookielibを使用するCookieJar--対応するpython 3ではhttpが使用されます.CookieJar
  7.例外処理:python 2でurllib 2を使用する.URLError,urllib2.HTTPError--対応する、python 3でurllibを使用する.error.URLError,urllib.error.HTTPError
urllib 2については、中国語版の翻訳ドキュメントを参照してください.http://blog.csdn.net/u014343243/article/details/49308043
Pythonサードパーティライブラリrequests
requestsはurllib 3を使用し、urllib 2のすべての特性を継承しています.requestsには大きな機能特性があります.
HTTP接続保持と接続プールをサポートする.クッキーを使用してセッションを維持することをサポートします.ファイルのアップロードをサポートする;応答内容を自動的に決定する符号化をサポートする.国際化されたURLとPOSTデータの自動符号化をサポートする.requestsはpythonが持参したライブラリではなく、別途インストールする必要があります(pipインストールでいいです)
例を添付します.
   
import requests

r = requests.get(url='http://www.baidu.com')    #     GET  
print(r.status_code)    #       
#    GET  ,http://dict.baidu.com/s?wd=python
r = requests.get(url='http://dict.baidu.com/s', params={'wd':'python'})   
print(r.url)
print(r.text)   #          
getを除く
また、POSTリクエスト、PUTリクエスト、DELETEリクエスト、HEADリクエスト、OPTIONSリクエスト
WEBシステムではgetリクエストに加えて、POSTリクエスト、PUTリクエスト、DELETEリクエスト、HEADリクエスト、OPTIONSリクエストは一般的にGETとPOSTのみをサポートし、HEADメソッドもサポートしています
requestsの詳細については、「
公式マニュアル:
http://docs.python-requests.org/en/latest/user/quickstart.html