urlopen()的參數


1.data參數

data是可選的,需要使用bytes()方法將參數轉化為字節編碼格式的內容。如果傳遞了這個參數,請求方式就不是GET方式,而是POST方式。

import urllib.parse
import urllib.request

data = bytes(urllib.parse.urlencode({'word':'hello'}),encoding='utf8')
#使用bytes()方法將參數word(值是hello),轉換為字節流(bytes),
#該方法的第一個參數需要str類型,需要用urllib.parse模塊里的urlencode()方法將參數字典轉化為字符串。

response = urllib.request.urlopen('http://httpbin.org/post',data = data)
print(response.read())

 

2.timeout參數

用於設置超時時間,單位為秒,如果超出了設置的這個時間,還沒有得到響應,就會拋出異常。可以通過設置這個超時時間來控制一個頁面長時間未響應時,就跳過它的抓取。

import socket
import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen('http://httpbin.org/get',timeout=0.1)#設置超時時間為0.1s
except urllib.error.URLError as e:
    if isinstance(e.reason,socket.timeout):
        print('TIME OUT')#如果超時,輸出TIME OUT

 

3.其他參數

context參數,類型必須是ssl.SSLContext類型。

cafile和capath這兩個參數分別指定CA證書和它的路徑,在請求HTTPS鏈接時候有用。

cadefault參數已經棄用了,其默認值為False。

 

參考用書《python3網絡爬蟲開發實戰》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM