urllib 庫(kù)的基本使用
(1). request : 是http請(qǐng)求模塊, 可以用來(lái)模擬發(fā)送請(qǐng)求,就像在瀏覽器中輸入網(wǎng)址,然后敲擊回車(chē)鍵一樣
(2). error : 異常處理模塊,如出現(xiàn)錯(cuò)誤,可以使用error模塊來(lái)捕捉異常,然后進(jìn)行重試或者其他操作,保證程序不會(huì)意外終止.
(3). parse : 這是一個(gè)工具模塊,提供了許多url的處理方法,比如拆分,解析,合并等等.
url:設(shè)置目標(biāo)url
data:如果設(shè)置該參數(shù),則請(qǐng)求默認(rèn)為post請(qǐng)求
timeout:用于設(shè)置超時(shí)時(shí)間,單位為秒
context:必須是一個(gè)ssl.SSLContext類(lèi)型,用來(lái)指定SSL設(shè)置,忽略未認(rèn)證的CA證書(shū).
urlopen方法的使用
request.urlopen(url,req_headers)
Request:
req = request.Request()
response = request.urloopen(req)
data(默認(rèn)空):是伴隨 url 提交的數(shù)據(jù)(比如要post的數(shù)據(jù)),同時(shí) HTTP 請(qǐng)求將從 "GET"方式 改為 "POST"方式。
headers(默認(rèn)空):是一個(gè)字典,包含了需要發(fā)送的HTTP報(bào)頭的鍵值對(duì)。
添加一個(gè) User-Agent
req_header = {"User-Agent" : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",}
添加更多的Header信息
在 HTTP Request 中加入特定的 Header,來(lái)構(gòu)造一個(gè)完整的HTTP請(qǐng)求消息。
1. 可以通過(guò)調(diào)用Request.add_header() 添加/修改一個(gè)特定的header
2. 也可以通過(guò)調(diào)用Request.get_header()來(lái)查看已有的header。
urlencode( ) 方法
通過(guò)urllib.urlencode()方法,將字典鍵值對(duì)按URL編碼轉(zhuǎn)換,從而能被web服務(wù)器接受。
result = urllib.parse.urlencode(word)
print(result)
通過(guò)urllib.unquote()方法,把 URL編碼字符串,轉(zhuǎn)換回原先字符串。
result = urllib.parse.unquote(result)
print(result)