摘要:個人博客凌霄的博客準(zhǔn)備必須環(huán)境開始先實現(xiàn)一個簡單的版本,直接上代碼創(chuàng)建方法設(shè)置一些基本屬性記錄次數(shù)訪問簡單粗暴,刷的只是沒變,容易被搜索引擎發(fā)現(xiàn),下面我們來改進一下增加代理功能給方法添加以下代碼修改一下主方法添加代理列表,可以自行去百度獲
準(zhǔn)備個人博客:凌霄的博客
必須環(huán)境:
Python3
開始先實現(xiàn)一個簡單的版本,直接上代碼:
import urllib.request import urllib.error #創(chuàng)建get方法 def get(url): code=urllib.request.urlopen(url).code return code if __name__ == "__main__": #設(shè)置一些基本屬性 url = "http://lx.nextdev.cn" user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36" headers = {"User-Agent":user_agent} req = urllib.request.Request(url, headers=headers) #記錄次數(shù) i = 1 while 1: code = get(url) print("訪問:"+str(code)) i = i+1
簡單粗暴,刷的只是 pv,ip 沒變,容易被搜索引擎發(fā)現(xiàn),下面我們來改進一下
增加代理功能給 get 方法添加以下代碼:
random_proxy = random.choice(proxies) proxy_support = urllib.request.ProxyHandler({"http":random_proxy}) opener = urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener)
修改一下主方法:
if __name__ == "__main__": url = "http://lx.nextdev.cn" #添加代理列表,可以自行去百度獲取 proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"] user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36" headers = {"User-Agent":user_agent} req = urllib.request.Request(url, headers=headers) i = 1 while 1: #添加參數(shù) code = get(url,proxies) print("第"+str(i)+"次代理訪問:"+str(code)) i = i+1
這樣差不多了,不過有個 bug ,如果頁面打不開了或者代理失效了,程序就自動結(jié)束了,接下來我們添加異常處理功能
異常處理定義 mail 方法 ,用來發(fā)郵件提醒
def mail(txt): _user = "你的賬號" _pwd = "你的密碼" _to = "收件賬號" msg = MIMEText(txt, "plain", "utf-8") #標(biāo)題 msg["Subject"] = "代理失效!" msg["From"] = _user msg["To"] = _to try: #這里我用的qq郵箱 s = smtplib.SMTP_SSL("smtp.qq.com", 465) s.login(_user, _pwd) s.sendmail(_user, _to, msg.as_string()) s.quit() print("Success!") except smtplib.SMTPException as e: print("Falied,%s" % e)
然后我們修改一下主方法:
if __name__ == "__main__": url = "http://lx.nextdev.cn" proxies = ["124.88.67.22:80","124.88.67.82:80","124.88.67.81:80","124.88.67.31:80","124.88.67.19:80","58.23.16.240:80"] user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36" headers = {"User-Agent":user_agent} req = urllib.request.Request(url, headers=headers) i = 1 while 1: try: code = get(url,proxies) print("第"+str(i)+"次代理訪問:"+str(code)) i = i+1 except urllib.error.HTTPError as e: print(e.code) #添加mail方法 mail(e.code) except urllib.error.URLError as err: print(err.reason) #添加mail方法 mail(err.reason)完成! 結(jié)語
代碼只有短短的 50 行,程序還可以改進:
例如:代理列表自動獲取,添加界面
歡迎評論
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38613.html
摘要:現(xiàn)有的服務(wù)器和應(yīng)用程序服務(wù)器相結(jié)合并在一個冒泡中運行,無法直接接觸網(wǎng)絡(luò)流量,由反向代理服務(wù)器提出填鴨式請求。賦予高可用性讓你的反向代理服務(wù)器鏡像到在線備份,同時擁有備用的應(yīng)用程序服務(wù)器,讓你的站點高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過 Nginx 優(yōu)化 Python 應(yīng)用性能。本文系國內(nèi) ITOM 管理平臺 OneAPM 編譯呈現(xiàn)。 本文上一篇系: 利用...
摘要:現(xiàn)有的服務(wù)器和應(yīng)用程序服務(wù)器相結(jié)合并在一個冒泡中運行,無法直接接觸網(wǎng)絡(luò)流量,由反向代理服務(wù)器提出填鴨式請求。賦予高可用性讓你的反向代理服務(wù)器鏡像到在線備份,同時擁有備用的應(yīng)用程序服務(wù)器,讓你的站點高度可用。 【編者按】本文主要介紹 NGINX 的主要功能以及如何通過 Nginx 優(yōu)化 Python 應(yīng)用性能。本文系國內(nèi) ITOM 管理平臺 OneAPM 編譯呈現(xiàn)。 本文上一篇系: 利用...
摘要:以下這些項目,你拿來學(xué)習(xí)學(xué)習(xí)練練手。當(dāng)你每個步驟都能做到很優(yōu)秀的時候,你應(yīng)該考慮如何組合這四個步驟,使你的爬蟲達到效率最高,也就是所謂的爬蟲策略問題,爬蟲策略學(xué)習(xí)不是一朝一夕的事情,建議多看看一些比較優(yōu)秀的爬蟲的設(shè)計方案,比如說。 (一)如何學(xué)習(xí)Python 學(xué)習(xí)Python大致可以分為以下幾個階段: 1.剛上手的時候肯定是先過一遍Python最基本的知識,比如說:變量、數(shù)據(jù)結(jié)構(gòu)、語法...
摘要:無論是將其用作的服務(wù)器反向代理服務(wù)器負載均衡器,還是同時使用以上三種功能,和都能帶來很大好處。再就是下篇文章會介紹如何把和當(dāng)作反向代理服務(wù)器和多個應(yīng)用程序服務(wù)器的負載均衡器。而使用將會有助于解決這一問題。 【編者按】本文主要介紹 nginx 的主要功能以及如何通過 NGINX 優(yōu)化 Python 應(yīng)用性能。本文系國內(nèi) ITOM 管理平臺 OneAPM 編譯呈現(xiàn)。 Python 的著名之...
摘要:無論是將其用作的服務(wù)器反向代理服務(wù)器負載均衡器,還是同時使用以上三種功能,和都能帶來很大好處。再就是下篇文章會介紹如何把和當(dāng)作反向代理服務(wù)器和多個應(yīng)用程序服務(wù)器的負載均衡器。而使用將會有助于解決這一問題。 【編者按】本文主要介紹 nginx 的主要功能以及如何通過 NGINX 優(yōu)化 Python 應(yīng)用性能。本文系國內(nèi) ITOM 管理平臺 OneAPM 編譯呈現(xiàn)。 Python 的著名之...
閱讀 1432·2021-11-22 15:24
閱讀 2523·2021-10-11 11:06
閱讀 2334·2021-10-09 09:45
閱讀 2532·2021-09-09 09:33
閱讀 639·2019-08-30 15:53
閱讀 1444·2019-08-30 12:48
閱讀 677·2019-08-29 13:47
閱讀 506·2019-08-26 18:27