python的urllib和urllib2模組都做與請求url相關的操作。
它們最顯著的差異為:
urllib2可以接受乙個request物件,並以此可以來設定乙個url的headers,但是urllib只接收乙個url。
urllib模組可以提供進行urlencode的方法,該方法用於get查詢字串的生成,urllib2的不具有這樣的功能.
python 2.7.x提供了urllib與urllib2,鑑於上述異同兩個庫通常搭配使用。
urllib2.urlopen(url, *data, *timeout)
urlopen方法是urllib2模組最常用的方法,用於訪問傳送某一請求。
url引數可以是乙個字串url或者是乙個request物件。
可選引數timeout用於設定超時時間,以秒為單位。
如果沒有指定,將使用設定的全域性預設timeout值。
urlopen使用預設opener進行訪問, 為阻塞式io.
如果請求成功,函式將返回響應。
在data為none時預設用get方法:
import urllib2
response = urllib2.urlopen('')
html = response.read()
print(html)
使用post傳送引數前需要先將引數編碼:
import urllib
import urllib2
values =
values = urllib.urlencode(values)
response = urllib2.urlopen('', values)
print(response.read())
urllib.urlencode不能直接進行unicode編碼,需要先進行轉碼:
urllib.urlencode (u'bl'.encode('utf-8'))
qutoe與urlencode均可以進行編碼,區別在於quote的空格由%20
替代而urlencode的空格由+替代。
使用request物件可以設定更多請求引數:
request(url, data=none, headers={}, origin_req_host=none, unverifiable=false, method=none)
在data為none時預設用get方法提交,有引數時預設用post方法提交
示例:
import urllib
import urllib2
url = ''
values =
data = urllib.urlencode(values)
request = urllib2.request(url, data)
response = urllib2.urlopen(request)
html = response.read()
為了使用cookie我們需要乙個opener物件來維護cookiejar.
python urllib簡單用法
簡單獲取網頁原始碼 html urlopen 開啟鏈結 print html.read decode utf 8 返回utf 8編碼的 原始碼 模擬傳送post請求 req request postdata parse.urlencode name str1 tel str2 mac str3 re...
SpringBoot Swagger簡單使用
io.springfox springfox swagger2 2.9.2 io.springfox springfox swagger ui 2.9.2 import org.springframework.context.annotation.bean import org.springfram...
python urllib模組學習筆記
這個模組是最基本最常用的,以前看過,總結一下 coding utf 8 import urllib url 伺服器 proxies 使用 伺服器開啟 r urllib.urlopen url,proxies proxies print r.info print r.getcode print r.g...