urllib 是Python內置的HTTP請求庫html
urllib.request 請求模塊服務器
request.urlopen()
經常使用參數:
url
data:若是有變成post方法,數據格式必須是application/x-www-from-unlencoded
返回類文件句柄
類文件句柄經常使用方法
read(size):size=-1/none //讀取
readeline() //讀取一行
readelines() //讀取多行
close() //關閉
getcode() //獲取請求狀態
HTTPMessage方法
文件句柄.info() 返回 httplib.HTTPMessage實例
dir() 是一個內置函數,用於列出對象的全部屬性及方法
items()
keys()
values()
request.urlretrieve()
利用urlretrieve() 將數據下載到本地。
經常使用參數:
url
finename 指定保存本地路勁
reporthook 回調函數,當鏈接上服務器、以及相應的數據塊傳輸完畢時會觸發該回調,顯示下載進度
data 指post到服務器的數據,該方法返回一個包含兩個元素(filename,headers)的元組
import sys,io
from urllib import request,error
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改變標準輸出的默認編碼
def progress(blk, blk_size, total_size):
print('%d/%d - %.02f%%' % (blk * blk_size, total_size, (float)(blk * blk_size) * 100 / total_size))
def retrieve():
try:
request.urlretrieve("http://blog.kamidox.com","test.html",reporthook=progress)
except error.URLError as e:
print(e.reason)
except error.HTTPError as e:
print(e.errno)
if __name__ =="__main__":
retrieve()
urllib.error 異常處理模塊app
主要的錯誤方式就兩種 URLError(錯誤信息)和HTTPError(錯誤編碼).函數
urllib.parse url解析模塊post
將對應的URL解析成六部分,並以元組的數據格式返回來。編碼
拼接urlurl
urllib.parse.urljoinspa
用來拼接url的方法 或者叫組合方法,url必須爲一致站點,不然後面參數會覆蓋前面的hostcode