pythonurllib2302
㈠ 如何在python中使用urllib2
urllib2 默認會使用環境變數 http_proxy 來設置 HTTP Proxy。如果想在程序中明確控制 Proxy 而不受環境變數的影響,可以使用下面的方式:
import urllib2
enable_proxy = True
proxy_handler = urllib2.ProxyHandler({"http" : 'IP:8080'})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
opener = urllib2.build_opener(proxy_handler)
else:
opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)
這里要注意的一個細節,使用 urllib2.install_opener() 會設置 urllib2 的全局 opener 。這樣後面的使用會很方便,但不能做更細粒度的控制,比如想在程序中使用兩個不同的 Proxy 設置等。比較好的做法是不使用 install_opener 去更改全局的設置,而只是直接調用 opener 的 open 方法代替全局的 urlopen 方法。
㈡ python中的urllib2的302跳轉怎麼處理cookie
cookie只是HTTP頭中的鍵值對,你可以手動去請求前賦值,請求完保存。。。
或者使用包可實現:
importcookielib,urllib2
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r=opener.open("http://example.com/")
這里cj就會自己去實現請求完存儲,和請求前賦值了
官方文檔:https://docs.python.org/2/library/cookielib.html
㈢ python urllib2的用法
urllib2 默認會使用環境變數 http_proxy 來設置 HTTP Proxy。如果想在程序中明確控制 Proxy 而不受環境變數的影響,可以使用下面的方式:
import urllib2
enable_proxy = True
proxy_handler = urllib2.ProxyHandler({"http" : 'IP:8080'})
null_proxy_handler = urllib2.ProxyHandler({})
if enable_proxy:
opener = urllib2.build_opener(proxy_handler)
else:
opener = urllib2.build_opener(null_proxy_handler)
urllib2.install_opener(opener)
這里要注意的一個細節,使用 urllib2.install_opener() 會設置 urllib2 的全局 opener 。這樣後面的使用會很方便,但不能做更細粒度的控制,比如想在程序中使用兩個不同的 Proxy 設置等。比較好的做法是不使用 install_opener 去更改全局的設置,而只是直接調用 opener 的 open 方法代替全局的 urlopen 方法。
㈣ python3.4沒有 urllib2
py3版本之後urllib模塊合並為urllib.request了。
原先的一些函數方法變化不大,只是多加了一個request而已。比如urllib.request.urlopen()
參考:http://www.cnblogs.com/Lands-ljk/p/5447127.html
㈤ 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庫urllib與urllib2有哪些區別
urllib 和urllib2都是接受URL請求的相關模塊,但是urllib2可以接受一個Request類的實例來設置URL請求的headers,urllib僅可以接受URL。
這意味著,你不可以偽裝你的User Agent字元串等。urllib提供urlencode方法用來GET查詢字元串的產生,而urllib2沒有。這是為何urllib常和urllib2一起使用的原因。
㈦ python的urllib2怎麼獲取響應頭的content-type
以下是獲取響應頭的content-type的具體方程組:
㈧ python3.5 urllib.request 怎麼禁止301,302跳轉
Python code?
class SmartRedirectHandler(urllib2.HTTPRedirectHandler): 1
def http_error_301(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301( 2
self, req, fp, code, msg, headers)
result.status = code 3
return result
def http_error_302(self, req, fp, code, msg, headers): 4
result = urllib2.HTTPRedirectHandler.http_error_302(
self, req, fp, code, msg, headers)
result.status = code
return result
㈨ Python2 urllib2用不了求解。。。
新手常犯的一個錯誤, 你的當前代碼或者別的代碼文件命名成了urllib2,
然後pycharm會自作聰明的把你的代碼都添加到環境變數,
於是乎, 你import urllib2的時候, 其實會優先查找你自己寫的代碼里是否有urllib2.py這個文件, 因為你這個文件就是urllib2.py, 所以import的是你自己的這個代碼, 沒有urlopen也是正常的.
以後給代碼命名就盡量避免這個情況, 我一般這樣命名: urllib2_.py
這樣既能知道這個代碼是幹嘛的, 又不會錯.
㈩ python urllib2模塊 在哪裡下載
urllib2是python自帶的模塊,不需要下載。
urllib2在python3.x中被改為urllib.request