當前位置:首頁 » 編程語言 » pythonurllib2請求

pythonurllib2請求

發布時間: 2025-08-16 16:41:38

python2.7 怎樣集成 urllib2

python最惡心的地方就在於它的版本和配置了,特別是安裝第三方包的時候經常會出現莫名其妙的錯誤,又不懂。

所以只能不斷的切來切去的。

今天學習python爬蟲,其中Python2.7使用了urllib和urllib2,python3的urllib結合了py2.7的兩部分。但是電腦不知為什麼又安裝不了py3的urllib,好煩。出現下面的錯誤。

python2.7和python3主要是模塊的位置變化地方較多。

其中python2.7的urllib和urllib2的區別一下:

  • urllib2可以接受一個Request類的實例來設置URL請求的headers,urllib僅可以接受URL。這意味著,你不可以通過urllib模塊偽裝你的User Agent字元串等(偽裝瀏覽器)。

  • urllib提供urlencode方法用來GET查詢字元串的產生,而urllib2沒有。這是為何urllib常和urllib2一起使用的原因。

  • urllib2模塊比較優勢的地方是urlliburllib2.urlopen可以接受Request對象作為參數,從而可以控制HTTP Request的header部。

  • 但是urllib.urlretrieve函數以及urllib.quote等一系列quote和unquote功能沒有被加入urllib2中,因此有時也需要urllib的輔助。

② python中ihttplib,httplib2,urllib2在http請求時哪個更快

= time.time()

httplib2.Http().request(url)
t6 = time.time()
http2 = t6-t5

t3 = time.time()
req = httplib.HTTPConnection(com')
req.request('GET', '/')
t4 = time.time()
http = t4-t3


t1 = time.time()
urllib2.urlopen(url)
t2 = time.time()
urll = t2-t1

print http2
print httpprint urll

結果:
0.156999826431
0.0150001049042
0.0780000686646
我寫了如上代碼測試的時候通常都是httplib的速度較快.實際過程中也是如此嗎?還是我測試的不對。還有head請求與get請求,為什麼head請求測試的時候感覺並沒有節省時間呢。我想寫爬蟲程序,希望速度能更快。

不知道你做了多少次重復的測試呢,單憑一次的測試結果不說明任何問題,我覺得有以下幾點可以說明

  • 抓取網頁的時間很多取決於http連接建立和數據傳輸的時間,所以網路狀況的影響很大,如果每次都是重新建立連接,和採用什麼python庫關系不大

  • urllib3可以復用tcp連接來進行多次http請求,所以可以省掉重新建立tcp的時間;requests會檢查是否安裝了urllib3。

  • head/get請求的時間取決於你請求的server端是否對這兩種請求做了不同的處理,如果沒有區分的話,兩種請求也就沒有區別

③ python requests get方式怎麼設置請求頭

Header可以通過Request提供的.add_header()方法進行添加,示例代碼如下:

  • 123456789101112#-*-coding:utf-8-*-

  • importurllib2importurlliburl='http://ah.example.com'half_url=u'/servlet/av/jd?

  • ai=782&ji=2624743&sn=I'#構造get請求req=urllib2.

  • Request(url+half_url.

  • encode('utf-8'))#添加headerreq.add_header('AcceptEncoding','gzip,deflate')req.

  • add_header('User-Agent','Mozilla/5.0')response=urllib2.

  • urlopen(req)

  • printresponse.

④ python 爬蟲時,urllib2.HTTPError:HTTP Error 502:Bad Gateway是什麼原因怎麼解決

可能是那個網站阻止了這類的訪問,只要在請求中加上偽裝成瀏覽器的header就可以了,比如:

headers={
'User-Agent':'Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.6)Gecko/20091201Firefox/3.5.6'
}
req=urllib2.Request(
url="http://www.qiushike.com/imgrank"
,
headers=headers
)
myResponse=urllib2.urlopen(req)

⑤ python urllib2進行網頁源代碼扒取時,出現urllib2.HTTPError: HTTP Error 250: Forbidden問題

HTTP請求的Headers包含瀏覽器的信息、所使用的語言、請求的主機、COOKIE等信息。

其中最重要的兩項是瀏覽器的信息User-Agent,如果請求中沒有User-Agent,網站會認為不是人在瀏覽器的請求,是惡意攻擊

對於需要登錄的網站,請求中往往需要COOKIE來驗證用戶,來獲取打開某些網站的許可權。

使用firefox瀏覽器的開發者工具箱>網路選項,可以很容易獲取User-Agent等頭信息

headers={"User-Agent":"Mozilla/5.0Firefox/35.0",
"Cookie":"BDUSS=AAAAAAAAAAAAAAAAAAAAAAAA",}
request=urllib2.Request(url,postData,headers=headers)
response=urllib2.urlopen(request)

熱點內容
平板拷貝如何緩存 發布:2025-08-16 23:19:05 瀏覽:599
繽越混動有哪些配置 發布:2025-08-16 23:17:57 瀏覽:247
刪除linux文件後 發布:2025-08-16 23:09:04 瀏覽:648
采訪時的采訪問題 發布:2025-08-16 23:07:27 瀏覽:110
電腦客戶端登錄伺服器怎麼清除 發布:2025-08-16 22:55:46 瀏覽:525
壓縮小木條 發布:2025-08-16 22:55:41 瀏覽:20
存款利率演算法 發布:2025-08-16 22:48:44 瀏覽:588
php開發api介面 發布:2025-08-16 22:47:48 瀏覽:839
將ssd轉化為hdd的高速緩存 發布:2025-08-16 22:39:04 瀏覽:910
行程碼伺服器異常什麼時候能好 發布:2025-08-16 22:38:58 瀏覽:517