python3 urllib學習

urllib 是Python內置的HTTP請求庫html

  • urllib.request 請求模塊
  • urllib.error 異常處理模塊
  • urllib.parse url解析模塊
  • urllib.robotparser robots.txt解析模塊

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

  • urllib.parse.urlparse

  將對應的URL解析成六部分,並以元組的數據格式返回來。編碼

  •  urllib.parse.urlunparse

  拼接urlurl

  • urllib.parse.urljoinspa

  用來拼接url的方法 或者叫組合方法,url必須爲一致站點,不然後面參數會覆蓋前面的hostcode

相關文章
相關標籤/搜索