av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

瀏覽:4日期:2022-07-03 15:00:48

功能1: 爬取西拉ip代理官網(wǎng)上的代理ip

環(huán)境:python3.8+pycharm庫:requests,lxml瀏覽器:谷歌IP地址:http://www.xiladaili.com/gaoni/

分析網(wǎng)頁源碼:

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

選中div元素后右鍵找到Copy再深入子菜單找到Copy Xpath點擊一下就復(fù)制到XPath

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

我們復(fù)制下來的Xpth內(nèi)容為:/html/body/div/div[3]/div[2]/table/tbody/tr[50]/td[1]雖然可以查出來ip,但不利于程序自動爬取所有IP,利用谷歌XpathHelp測試一下

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

從上圖可以看出,只匹配到了一個Ip,我們稍作修改,即可達(dá)到目的,有關(guān)xpath規(guī)則,可以參考下表;

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

經(jīng)過上面的規(guī)則學(xué)習(xí)后,我們修改為://*[@class=‘mt-0 mb-2 table-responsive’]/table/tbody/tr/td[1],再利用xpthhelp工具驗證一下:

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

這樣我們就可以爬取整個頁面的Ip地址了,為了方便爬取更多的IP,我們繼續(xù)往下翻頁,找到翻頁按鈕:

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

找規(guī)律,發(fā)現(xiàn)每翻一頁,a標(biāo)簽下的href連接地址加1即可,python程序可以利用for循環(huán)解決翻頁問題即可。為了提高IP代理的質(zhì)量,我們爬取評分高的IP來使用。找到評分欄下的Xpath路徑,這里不再做詳細(xì)介紹,思路參考上面找IP地址的思路,及XPath規(guī)則,過程參考下圖:

Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)

Python代碼實現(xiàn)

代碼可復(fù)制粘貼直接使用,如果出現(xiàn)報錯,修改一下cookie。這里使用代理ip爬取,防止IP被封。當(dāng)然這里的代碼還是基礎(chǔ)的,有空可以寫成代理池,多任務(wù)去爬。當(dāng)然還可以使用其它思路去實現(xiàn),這里只做入門介紹。當(dāng)有了這些代理IP后,我們可以用文件保存,或者保存到數(shù)據(jù)庫中,根據(jù)實際使用情況而定,這里不做保存,只放到列表變量中保存。

import requestsfrom lxml import etreeimport timeclass XiLaIp_Spider: def __init__(self): self.url = ’http://www.xiladaili.com/gaoni/’ self.headers = { ’User-Agent’: ’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36’, ’cookie’: ’td_cookie=1539882751; csrftoken=lymOXQp49maLMeKXS1byEMMmsavQPtOCOUwy6WIbfMNazZW80xKKA8RW2Zuo6ssy; Hm_lvt_31dfac66a938040b9bf68ee2294f9fa9=1592547159; Hm_lvt_9bfa8deaeafc6083c5e4683d7892f23d=1592535959,1592539254,1592612217; Hm_lpvt_9bfa8deaeafc6083c5e4683d7892f23d=1592612332’, } self.proxy = ’116.196.85.150:3128’ self.proxies = { 'http': 'http://%(proxy)s/' % {’proxy’: self.proxy}, 'https': 'http://%(proxy)s/' % {’proxy’: self.proxy} } self.list1 = [] def get_url(self): file = open(’Ip_Proxy.txt’, ’a’, encoding=’utf-8’) ok_file = open(’OkIp_Proxy.txt’, ’a’, encoding=’utf-8’) for index in range(50): time.sleep(3) try:res = requests.get(url=self.url if index == 0 else self.url + str(index) + '/', headers=self.headers, proxies=self.proxies, timeout=10).text except:continue data = etree.HTML(res).xpath('//*[@class=’mt-0 mb-2 table-responsive’]/table/tbody/tr/td[1]') # ’//*[@id='scroll']/table/tbody/tr/td[1]’ score_data = etree.HTML(res).xpath('//*[@class=’mt-0 mb-2 table-responsive’]/table/tbody/tr/td[8]') for i, j in zip(data, score_data):# file.write(i.text + ’n’)score = int(j.text)# 追加評分率大于十萬的ipif score > 100000: self.list1.append(i.text) set(self.list1) file.close() ok_ip = [] for i in self.list1: try:# 驗證代理ip是否有效res = requests.get(url=’https://www.baidu.com’, headers=self.headers, proxies={’http’: ’http://’ + i}, timeout=10)if res.status_code == 200: # ok_file.write(i + ’n’) ok_ip.append(i) except:continue ok_file.close() return ok_ip def run(self): return self.get_url()dl = XiLaIp_Spider()dl.run()

到此這篇關(guān)于Python爬蟲簡單運(yùn)用爬取代理IP的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python 爬取代理IP內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 性大毛片视频 | 超碰在线免费公开 | 成人aaaa| 中文字幕在线一区二区三区 | 久久久午夜 | 亚洲自拍偷拍视频 | 91免费国产 | 黄色成人在线视频 | 国产美女精品视频 | 女人高潮特级毛片 | 精品人伦一区二区三区 | 国产激情综合五月久久 | 国产成人97精品免费看片 | 五月婷婷婷 | 日本伊人网 | 亚洲综合精品 | 一道本在线视频 | 免费a在线观看 | 午夜精品久久久久久久久久久久 | 免费成人黄色 | 18色av| 亚洲天天操 | 99精品色| 日韩在线视频免费 | 日韩在线一区二区 | 久久精品一区二区三区四区五区 | 国产欧美日韩在线观看 | 欧美日韩大片 | 午夜看看 | 手机av在线 | 午夜精品一区二区三区在线播放 | h视频在线播放 | 中文天堂在线观看 | 91亚洲国产 | 日韩成人精品视频 | 欧美综合激情 | 国产黄色在线观看 | 深夜福利久久 | 日韩欧美中文字幕在线观看 | 亚洲精品久久久久久久久 | 爱爱短视频|