python爬蟲簡單的添加代理進行訪問的實現(xiàn)代碼
在使用python對網(wǎng)頁進行多次快速爬取的時候,訪問次數(shù)過于頻繁,服務(wù)器不會考慮User-Agent的信息,會直接把你視為爬蟲,從而過濾掉,拒絕你的訪問,在這種時候就需要設(shè)置代理,我們可以給proxies屬性設(shè)置一個代理的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("當前代理異常") except: print("當前請求異常")
在上面的代碼中,調(diào)用requests庫,對一個IP地址查詢網(wǎng)頁進行訪問,隨后使用lxml庫的xpath對網(wǎng)頁進行分析提取,返回用戶訪問此網(wǎng)頁時自己的IP地址,如果代理設(shè)置成功,則會返回你的信息和IP地址,如下:
如果代理失敗則會返回異常,在代碼中使用了捕獲異常,則會返回設(shè)置的提示信息,"當前代理異常",如果不是代理的錯誤則是"當前請求異常"
PS:免費的代理不是很穩(wěn)定,在確認代碼無誤后,如果仍然返回異常,可嘗試更換代理IP...
總結(jié)
以上所述是小編給大家介紹的python爬蟲簡單的添加代理進行訪問的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Python matplotlib實現(xiàn)條形統(tǒng)計圖
這篇文章主要為大家詳細介紹了Python matplotlib實現(xiàn)條形統(tǒng)計圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04在Python中使用xlrd和xlwt讀寫Excel文件代碼實例
這篇文章主要介紹了在Python中使用xlrd和xlwt讀寫Excel文件代碼實例,python操作excel主要用到xlrd和xlwt兩個庫,即xlrd是讀excel,xlwt是寫excel庫,文中提供了部分實例代碼,需要的朋友可以參考下2023-08-08Python 進程之間共享數(shù)據(jù)(全局變量)的方法
今天小編就為大家分享一篇Python 進程之間共享數(shù)據(jù)(全局變量)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07如何查看Django ORM執(zhí)行的SQL語句的實現(xiàn)
這篇文章主要介紹了如何查看Django ORM執(zhí)行的SQL語句的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04Python模擬登錄requests.Session應(yīng)用詳解
這篇文章主要介紹了Python模擬登錄requests.Session應(yīng)用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11Google colab中從kaggle中接入數(shù)據(jù)的操作方法
這篇文章主要介紹了Google colab中如何從kaggle中接入數(shù)據(jù),本文涉及到兩大平臺內(nèi)容,所以我默認你已經(jīng)擁有了,并且使用過了一段時間的google賬號和kaggle賬號,需要的朋友可以參考下2024-03-03使用Tensorflow將自己的數(shù)據(jù)分割成batch訓練實例
今天小編就為大家分享一篇使用Tensorflow將自己的數(shù)據(jù)分割成batch訓練實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01