亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python爬蟲實戰之制作屬于自己的一個IP代理模塊

瀏覽:61日期:2022-06-17 16:30:31
目錄一、使用PyChram的正則二、制作一個隨機User-Agent模塊三、最終實踐3.1 爬取快代理上的ip3.2 驗證爬取到的ip是否可用3.3 實戰:利用爬取到的ip訪問CSDN博客網址1000次四、總結一、使用PyChram的正則

首先,小編講的不是爬取ip,而是講了解PyCharm的正則,這里講的正則不是Python的re模塊哈!而是PyCharm的正則功能,我們在PyChram的界面上按上Ctrl+R,可以發現,這里出現兩行輸入框

python爬蟲實戰之制作屬于自己的一個IP代理模塊

現在如果小編想把如下數據轉換成一個字典存儲

python爬蟲實戰之制作屬于自己的一個IP代理模塊

讀者也許會一個一去改,但是小編只需在上述的那兩個輸入框內,輸入一串字符串即可。

python爬蟲實戰之制作屬于自己的一個IP代理模塊

只需在第一個輸入框中,輸入(.*) : (.*)在第二個輸入框中,輸入'$1':'$2',,看看效果如何

python爬蟲實戰之制作屬于自己的一個IP代理模塊

之后再給兩端分別一個花括號和取一個字典名稱即可。

二、制作一個隨機User-Agent模塊

反爬措施中,有這樣一條,就是服務器會檢查請求的user-agent參數值,如果檢查的結果為python,那么服務器就知道這是爬蟲,為了避免被服務器發現這是爬蟲,通常user-agent參數值會設置瀏覽器的值,但是爬取一個網址時,每次都需要查看網址network下面的內容,顯得比較繁瑣,為什么不自定義一個隨機獲取user-agent的值模塊呢?這樣既可以減少查看network帶來的繁瑣,同時還可以避免服務器發現這是同一個user-agent發起多次請求。說了這么多,那么具體怎樣實現呢?

python爬蟲實戰之制作屬于自己的一個IP代理模塊

只需調用隨機模塊random的方法choice()即可,這個方法里面的參數類型時列表類型,具體參考代碼如下:

import randomclass useragent(object): def getUserAgent(self):useragents=[ ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36’, ’Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1’, ’Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0’, ’Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)’, ’Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)’,]return random.choice(useragents)

這樣我們就可以隨機得到一個user-agent的值了。

三、最終實踐3.1 爬取快代理上的ip

接下來,就是最終實踐了,制作屬于自己的IP代理模塊。

那么,從哪里獲取IP呢?小編用的是快代理這個網址,網址鏈接為:https://www.kuaidaili.com/free/inha/1/。

怎樣提取IP呢?小編用的是xpath語法

python爬蟲實戰之制作屬于自己的一個IP代理模塊

參考代碼如下:

import requestsfrom crawlers.userAgent import useragent # 導入自己自定義的類,主要作用為隨機取user-agent的值from lxml import etreeurl=’https://www.kuaidaili.com/free/inha/1/’headers={’user-agent’:useragent().getUserAgent()}rsp=requests.get(url=url,headers=headers)HTML=etree.HTML(rsp.text)infos=HTML.xpath('//table[@class=’table table-bordered table-striped’]/tbody/tr')for info in infos: print(info.xpath(’./td[1]/text()’)) # ip print(info.xpath(’./td[2]/text()’)) # ip對應的端口 列表類型

怎樣爬取多頁呢?分析快代理那個網址,可以發現https://www.kuaidaili.com/free/inha/{頁數}/ ,花括號里面就是頁數,這個網址總頁數為4038,這里小編只爬取5頁,并且開始頁數取(1,3000)之間的隨機數,但是如果for循環這個過程,運行結果如下:

python爬蟲實戰之制作屬于自己的一個IP代理模塊

原來是請求過快的原因,只需在爬取1頁之后,休眠幾秒鐘即可解決。

3.2 驗證爬取到的ip是否可用

這里直接用百度這個網址作為測試網址,主要代碼為:

url=’https://www.baidu.com’headers={’user-agent’:useragent().getUserAgent()}proxies={} # ip ,這里只是講一下關鍵代碼,沒有給出具體IPrsp=requests.get(url=url,headers=headers,proxies=proxies,time=0.2) # timeout為超時時間

只需判斷rsp的狀態碼為200,如果是,把它添加到一個指定的列表中。

具體參考代碼小編已經上傳到Gitee上,鏈接為:ip代理模塊

當然讀者可用把這個文件保存到pythonLib文件夾下面,這樣就可用隨時隨地導入了。

3.3 實戰:利用爬取到的ip訪問CSDN博客網址1000次

python爬蟲實戰之制作屬于自己的一個IP代理模塊python爬蟲實戰之制作屬于自己的一個IP代理模塊python爬蟲實戰之制作屬于自己的一個IP代理模塊

上述出現那個錯誤,小編上網搜索了一下原因,如下:

python爬蟲實戰之制作屬于自己的一個IP代理模塊

我想應該是第1種原因,ip被封,我這里沒有設置超時時間,應該不會出現程序請求速度過快。

四、總結

上述那個ip代理模塊還有很多的不足點,比如用它去訪問一些網址時,不管運行多少次,輸出的結果狀態碼不會時200,這也正常,畢竟免費的ip并不是每個都能用的。如果要說改進的話,就是多爬取幾個不同ip代理網址,去重,這樣的結果肯定會比上述的那個ip代理模塊要好

到此這篇關于python爬蟲實戰之制作屬于自己的一個IP代理模塊的文章就介紹到這了,更多相關Python IP代理模塊內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 九九国产精品九九 | www.啪| 国产v国产v片大片线观看网站 | 欧美一区二区在线免费观看 | 亚洲三级色 | 国产日韩欧美亚洲精品95 | 欧美三片| 国产在线观看青草视频 | 同性欧美可播放videos免费 | 国产精品美脚玉足在线 | 亚洲成在线观看 | 欧美四区 | 婷婷亚洲久悠悠色在线播放 | 99热久久这里只精品国产www | 欧美一区二区三区久久综合 | 站长推荐精品午夜免费影院 | 欧美成人免费一区在线播放 | 看片网站在线 | 成人午夜私人影院入口 | 日韩www视频 | 亚洲不卡一区二区三区在线 | 亚洲国产精品一区二区久久 | 男人懂的网站 | 日韩做爰在线观看免费 | 欧美人牲| 国产欧美一区二区三区免费 | 伊人激情在线 | 亚洲在线一区二区三区 | 久久综合给合久久狠狠狠色97 | 殴美一级黄色片 | 欧美韩日国产 | a级国产视频 | 播放欧亚一级特黄录像 | 岛国精品成人 | 综合亚洲欧美日韩一区二区 | 亚洲色图另类 | 一级成人生活片免费看 | 九九九九热精品免费视频 | 免费毛片a线观看 | 精品在线免费播放 | 福利一区二区 |