python爬蟲(chóng)簡(jiǎn)單的添加代理進(jìn)行訪問(wèn)的實(shí)現(xiàn)代碼
在使用python對(duì)網(wǎng)頁(yè)進(jìn)行多次快速爬取的時(shí)候,訪問(wèn)次數(shù)過(guò)于頻繁,服務(wù)器不會(huì)考慮User-Agent的信息,會(huì)直接把你視為爬蟲(chóng),從而過(guò)濾掉,拒絕你的訪問(wèn),在這種時(shí)候就需要設(shè)置代理,我們可以給proxies屬性設(shè)置一個(gè)代理的IP地址,代碼如下:
import requests from lxml import etree url = "https://www.ip.cn" headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.116", } pro = { # 'https': 'https://118.122.92.252:37901', #四川省成都市 電信 'https': 'https://27.17.45.90:43411', #湖北省武漢市 電信 } try: response = requests.get(url, headers=headers, proxies=pro) html_str = response.content.decode() # print(html_str) html = etree.HTML(html_str) message = html.xpath("http://div[@class='well']//p/text()") ip = html.xpath("http://div[@class='well']//p/code/text()") eng = html.xpath("http://div[@class='well']/p/text()") print(message[0]+ip[0]) print(message[1]+ip[1]) print(eng[2]) except requests.exceptions.ProxyError as e: print("當(dāng)前代理異常") except: print("當(dāng)前請(qǐng)求異常")
在上面的代碼中,調(diào)用requests庫(kù),對(duì)一個(gè)IP地址查詢網(wǎng)頁(yè)進(jìn)行訪問(wèn),隨后使用lxml庫(kù)的xpath對(duì)網(wǎng)頁(yè)進(jìn)行分析提取,返回用戶訪問(wèn)此網(wǎng)頁(yè)時(shí)自己的IP地址,如果代理設(shè)置成功,則會(huì)返回你的信息和IP地址,如下:
如果代理失敗則會(huì)返回異常,在代碼中使用了捕獲異常,則會(huì)返回設(shè)置的提示信息,"當(dāng)前代理異常",如果不是代理的錯(cuò)誤則是"當(dāng)前請(qǐng)求異常"
PS:免費(fèi)的代理不是很穩(wěn)定,在確認(rèn)代碼無(wú)誤后,如果仍然返回異常,可嘗試更換代理IP...
總結(jié)
以上所述是小編給大家介紹的python爬蟲(chóng)簡(jiǎn)單的添加代理進(jìn)行訪問(wèn)的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- Python爬蟲(chóng)使用代理IP的實(shí)現(xiàn)
- Python代理IP爬蟲(chóng)的新手使用教程
- python打造爬蟲(chóng)代理池過(guò)程解析
- 檢測(cè)python爬蟲(chóng)時(shí)是否代理ip偽裝成功的方法
- Python爬蟲(chóng)動(dòng)態(tài)ip代理防止被封的方法
- Python爬蟲(chóng)設(shè)置代理IP(圖文)
- selenium+python設(shè)置爬蟲(chóng)代理IP的方法
- Python爬蟲(chóng)常用小技巧之設(shè)置代理IP
- Python爬蟲(chóng)爬取新浪微博內(nèi)容示例【基于代理IP】
- 爬蟲(chóng)代理池Python3WebSpider源代碼測(cè)試過(guò)程解析
相關(guān)文章
Python matplotlib實(shí)現(xiàn)條形統(tǒng)計(jì)圖
這篇文章主要為大家詳細(xì)介紹了Python matplotlib實(shí)現(xiàn)條形統(tǒng)計(jì)圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04在Python中使用xlrd和xlwt讀寫(xiě)Excel文件代碼實(shí)例
這篇文章主要介紹了在Python中使用xlrd和xlwt讀寫(xiě)Excel文件代碼實(shí)例,python操作excel主要用到xlrd和xlwt兩個(gè)庫(kù),即xlrd是讀excel,xlwt是寫(xiě)excel庫(kù),文中提供了部分實(shí)例代碼,需要的朋友可以參考下2023-08-08Python 進(jìn)程之間共享數(shù)據(jù)(全局變量)的方法
今天小編就為大家分享一篇Python 進(jìn)程之間共享數(shù)據(jù)(全局變量)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07如何查看Django ORM執(zhí)行的SQL語(yǔ)句的實(shí)現(xiàn)
這篇文章主要介紹了如何查看Django ORM執(zhí)行的SQL語(yǔ)句的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04Python模擬登錄requests.Session應(yīng)用詳解
這篇文章主要介紹了Python模擬登錄requests.Session應(yīng)用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Google colab中從kaggle中接入數(shù)據(jù)的操作方法
這篇文章主要介紹了Google colab中如何從kaggle中接入數(shù)據(jù),本文涉及到兩大平臺(tái)內(nèi)容,所以我默認(rèn)你已經(jīng)擁有了,并且使用過(guò)了一段時(shí)間的google賬號(hào)和kaggle賬號(hào),需要的朋友可以參考下2024-03-03使用Tensorflow將自己的數(shù)據(jù)分割成batch訓(xùn)練實(shí)例
今天小編就為大家分享一篇使用Tensorflow將自己的數(shù)據(jù)分割成batch訓(xùn)練實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01