Python爬蟲之網(wǎng)絡(luò)請求
1.IP代理
某些網(wǎng)站會檢測一段時(shí)間內(nèi)某IP的訪問次數(shù),若訪問次數(shù)過多會禁止訪問,這時(shí)需要設(shè)置一些代理服務(wù)器,每隔一段時(shí)間換一個(gè)代理。IP代理的分類:
- ①透明代理:目標(biāo)網(wǎng)站可以得知使用了代理以及源IP地址,顯然這不符合要求;
- ②匿名代理:目標(biāo)網(wǎng)站知道使用了代理,但不知道源IP地址;
- ③高匿代理:最保險(xiǎn)的方式,目標(biāo)網(wǎng)站既不知道使用了代理,也不知道源IP地址。
2.Cookie
解決http
的無狀態(tài)性,第一次向服務(wù)器發(fā)送請求時(shí),服務(wù)器生成Cookie
作為請求頭并儲存到瀏覽器中;瀏覽器再次發(fā)送請求時(shí)將攜帶Cookie信息。
import urllib.request from http import cookiejar filename = 'cookie.txt' #獲取Cookie def get_cookie(): ? ? #實(shí)例化一個(gè)MozillaCookieJar用于存儲cookie ? ? cookie = cookiejar.MozillaCookieJar(filename) ? ? #創(chuàng)建handler對象 ? ? handler = urllib.request.HTTPCookieProcessor(cookie) ? ? #創(chuàng)建opener對象 ? ? opener = urllib.request.build_opener(handler) ? ? #請求網(wǎng)址 ? ? url = 'https://tieba.baidu.com/index.html?traceid=#' ? ? resp = opener.open(url) #發(fā)送請求 ? ? #存儲cookie文件 ? ? cookie.save() ? #讀取cookie def use_cookie(): ? ? #實(shí)例化MozillaCookieJar ? ? cookie = cookiejar.MozillaCookieJar() ? ? #加載cookie文件 ? ? cookie.load(filename) ? ? print(cookie) ? get_cookie() use_cookie()
3.異常處理
①urllib.error.URLError:用于捕獲由urllib.request產(chǎn)生的異常,使用reason屬性返回錯(cuò)誤原因
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)
輸出結(jié)果:
[WinError 10060] 由于連接方在一段時(shí)間后沒有正確答復(fù)或連接的主機(jī)沒有反應(yīng),連接嘗試失敗。
②urllib.error.HTTPError:用于處理HTTP與HTTPS請求的錯(cuò)誤,
有三個(gè)屬性:
code
:請求返回的狀態(tài)碼reason
:返回錯(cuò)誤的原因headers
:請求返回的響應(yīng)頭信息
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('響應(yīng)狀態(tài)碼:',str(e.code)) ? ? print('響應(yīng)頭數(shù)據(jù):',e.headers)
到此這篇關(guān)于Python爬蟲之網(wǎng)絡(luò)請求的文章就介紹到這了,更多相關(guān)Python 網(wǎng)絡(luò)請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除排序數(shù)組中重復(fù)項(xiàng)的兩種方法,涉及Python數(shù)組元素的遍歷、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下2019-01-01Python基礎(chǔ)教程(一)——Windows搭建開發(fā)Python開發(fā)環(huán)境
這篇文章主要介紹了Windows如何搭建開發(fā)Python開發(fā)環(huán)境,幫助大家開始學(xué)習(xí)Python,感興趣的朋友可以了解下2020-07-07python可視化數(shù)據(jù)分析pyecharts初步嘗試
這篇文章主要為大家介紹了python可視化數(shù)據(jù)分析pyecharts初步嘗試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04Python實(shí)現(xiàn)投影法分割圖像示例(二)
今天小編就為大家分享一篇Python實(shí)現(xiàn)投影法分割圖像示例(二),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python讀取ini文件、操作mysql、發(fā)送郵件實(shí)例
這篇文章主要介紹了Python讀取ini文件、操作mysql、發(fā)送郵件實(shí)例,本文重點(diǎn)在Mysql操作的講解上,包含查詢、插入、更新和刪除操作,需要的朋友可以參考下2015-01-01Python創(chuàng)建類的方法及成員訪問的相關(guān)知識總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python基礎(chǔ)的相關(guān)知識,文章圍繞著Python類的方法及成員訪問展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python3 ID3決策樹判斷申請貸款是否成功的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python3 ID3決策樹判斷申請貸款是否成功的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05