您好,登錄后才能下訂單哦!
本篇內容介紹了“Python爬蟲之網絡請求實例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
某些網站會檢測一段時間內某IP的訪問次數,若訪問次數過多會禁止訪問,這時需要設置一些代理服務器,每隔一段時間換一個代理。IP代理的分類:
①透明代理:目標網站可以得知使用了代理以及源IP地址,顯然這不符合要求;
②匿名代理:目標網站知道使用了代理,但不知道源IP地址;
③高匿代理:最保險的方式,目標網站既不知道使用了代理,也不知道源IP地址。
解決http
的無狀態性,第一次向服務器發送請求時,服務器生成Cookie
作為請求頭并儲存到瀏覽器中;瀏覽器再次發送請求時將攜帶Cookie信息。
import urllib.request from http import cookiejar filename = 'cookie.txt' #獲取Cookie def get_cookie(): #實例化一個MozillaCookieJar用于存儲cookie cookie = cookiejar.MozillaCookieJar(filename) #創建handler對象 handler = urllib.request.HTTPCookieProcessor(cookie) #創建opener對象 opener = urllib.request.build_opener(handler) #請求網址 url = 'https://tieba.baidu.com/index.html?traceid=#' resp = opener.open(url) #發送請求 #存儲cookie文件 cookie.save() #讀取cookie def use_cookie(): #實例化MozillaCookieJar cookie = cookiejar.MozillaCookieJar() #加載cookie文件 cookie.load(filename) print(cookie) get_cookie() use_cookie()
①urllib.error.URLError:用于捕獲由urllib.request產生的異常,使用reason屬性返回錯誤原因
import urllib.request import urllib.error url = 'http://www.google.com' try: resp = urllib.request.urlopen(url) except urllib.error.URLError as e: print(e.reason)
輸出結果:
[WinError 10060] 由于連接方在一段時間后沒有正確答復或連接的主機沒有反應,連接嘗試失敗。
②urllib.error.HTTPError:用于處理HTTP與HTTPS請求的錯誤,
有三個屬性:
code
:請求返回的狀態碼
reason
:返回錯誤的原因
headers
:請求返回的響應頭信息
import urllib.request import urllib.error url = 'https://movie.douban.com/' try: resp = urllib.request.urlopen(url) except urllib.error.HTTPError as e: print('原因:',e.reason) print('響應狀態碼:',str(e.code)) print('響應頭數據:',e.headers)
“Python爬蟲之網絡請求實例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。