python2.X 有這些庫名可用: urllib, urllib2, urllib3, httplib, httplib2, requestspython
python3.X 有這些庫名可用: urllib, urllib3, httplib2, requests安全
二者都有的urllib3和requests, 它們不是標準庫. urllib3 提供線程安全鏈接池和文件post支持,與urllib及urllib2的關係不大. requests 自稱HTTP for Humans, 使用更簡潔方便cookie
對於python2.X:ide
urllib和urllib2的主要區別:工具
1. urllib2能夠接受Request對象爲URL設置頭信息,修改用戶代理,設置cookie等, urllib只能接受一個普通的URL.post
2. urllib提供一些比較原始基礎的方法而urllib2沒有這些, 好比 urlencodeurl
httplib 和 httplib2線程
httplib 是http客戶端協議的實現,一般不直接使用, urllib是以httplib爲基礎 代理
httplib2 是第三方庫, 比httplib有更多特性code
httplib比較底層,通常使用的話用urllib和urllib2便可
對於python3.X:
這裏urllib成了一個包, 此包分紅了幾個模塊,
urllib.request 用於打開和讀取URL,
urllib.error 用於處理前面request引發的異常,
urllib.parse 用於解析URL,
urllib.robotparser用於解析robots.txt文件
python2.X 中的 urllib.urlopen()被廢棄, urllib2.urlopen()至關於python3.X中的urllib.request.urlopen()
python2.X中的httplib被重命名爲 http.client
使用 2to3 工具轉換源碼時, 會自動處理這幾個庫的導入
總的來講, 使用python3, 記住只有urllib, 想要更簡潔好用就用requests, 但不夠通用