国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

楚江數(shù)據(jù):建立爬蟲(chóng)代理ip池

imingyu / 1083人閱讀

摘要:所以建立并維護(hù)好一個(gè)有效的代理池也是爬蟲(chóng)的一個(gè)準(zhǔn)備工作。網(wǎng)上提供免費(fèi)代理的網(wǎng)址很多,下面我們以西刺網(wǎng)站為例來(lái)建立一個(gè)有效的代理池。

在爬取網(wǎng)站信息的過(guò)程中,有些網(wǎng)站為了防止爬蟲(chóng),可能會(huì)限制每個(gè)ip的訪問(wèn)速度或訪問(wèn)次數(shù)。對(duì)于限制訪問(wèn)速度的情況,我們可以通過(guò)time.sleep進(jìn)行短暫休眠后再次爬取。對(duì)于限制ip訪問(wèn)次數(shù)的時(shí)候我們需要通過(guò)代理ip輪換去訪問(wèn)目標(biāo)網(wǎng)址。所以建立并維護(hù)好一個(gè)有效的代理ip池也是爬蟲(chóng)的一個(gè)準(zhǔn)備工作。
網(wǎng)上提供免費(fèi)代理ip的網(wǎng)址很多,下面我們以西刺網(wǎng)站為例來(lái)建立一個(gè)有效的代理ip池。
項(xiàng)目流程:

第一步:構(gòu)造請(qǐng)求代理ip網(wǎng)站鏈接
def get_url(url): # 國(guó)內(nèi)高匿代理的鏈接 url_list = [] for i in range(1,100): url_new = url + str(i) url_list.append(url_new) return url_list
get_url :生成要爬取目標(biāo)網(wǎng)址的鏈接
第二步:獲取網(wǎng)頁(yè)內(nèi)容
def get_content(url): # 獲取網(wǎng)頁(yè)內(nèi)容 user_agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0" headers = {"User-Agent": user_agent} req = urllib.request.Request(url=url, headers=headers) res = urllib.request.urlopen(req) content = res.read() return content.decode("utf-8")
get_content:接受的參數(shù)是傳入的目標(biāo)網(wǎng)站鏈接
第三步:提取網(wǎng)頁(yè)中ip地址和端口號(hào)信息
def get_info(content): # 提取網(wǎng)頁(yè)信息 / ip 端口 datas_ip = etree.HTML(content).xpath("http://table[contains(@id,"ip_list")]/tr/td[2]/text()") datas_port = etree.HTML(content).xpath("http://table[contains(@id,"ip_list")]/tr/td[3]/text()") with open("data.txt", "w") as fd: for i in range(0,len(datas_ip)): out = u"" out += u"" + datas_ip[i] out += u":" + datas_port[i] fd.write(out + u"n") # 所有ip和端口號(hào)寫入data文件
get_info:接收從get_content函數(shù)傳來(lái)的網(wǎng)頁(yè)內(nèi)容,并使用etree解析出ip和端口號(hào),將端口號(hào)和ip寫入data.
第四步:驗(yàn)證代理ip的有效性
def verif_ip(ip,port): # 驗(yàn)證ip有效性 user_agent ="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0" headers = {"User-Agent":user_agent} proxy = {"http":"http://%s:%s"%(ip,port)} print(proxy) proxy_handler = urllib.request.ProxyHandler(proxy) opener = urllib.request.build_opener(proxy_handler) urllib.request.install_opener(opener) test_url = "https://www.baidu.com/" req = urllib.request.Request(url=test_url,headers=headers) time.sleep(6) try: res = urllib.request.urlopen(req) time.sleep(3) content = res.read() if content: print("that is ok") with open("data2.txt", "a") as fd: # 有效ip保存到data2文件夾 fd.write(ip + u":" + port) fd.write("n") else: print("its not ok") except urllib.request.URLError as e: print(e.reason)
verif_ip:使用ProxyHandler建立代理,使用代理ip訪問(wèn)某網(wǎng)址,查看是否得到響應(yīng)。如數(shù)據(jù)有效,則保存到data2.txt文件
最后:調(diào)用各個(gè)函數(shù)
if name == "__main__": url = "http://www.xicidaili.com/nn/" url_list = get_url(url) for i in url_list: print(i) content = get_content(i) time.sleep(3) get_info(content) with open("dali.txt", "r") as fd: datas = fd.readlines() for data in datas: print(data.split(u":")[0]) # print("%d : %d"%(out[0],out[1])) verif_ip(data.split(u":")[0],data.split(u":")[1])
得到爬取結(jié)果

【楚江數(shù)據(jù)】團(tuán)隊(duì)提供網(wǎng)站、手機(jī)APP(包括電商、社交網(wǎng)站、公眾號(hào)、論壇及客戶提供的其他類型)爬蟲(chóng)定制開(kāi)發(fā)和數(shù)據(jù)(文本、圖片、電話郵箱、文檔等)批量采集服務(wù)。不用學(xué)編程,不用寫代碼,我們直接交付采集好的數(shù)據(jù)或者編寫好的程序。
微信:p02721606
官方網(wǎng)站http://www.chujiangdata.com

轉(zhuǎn)載知乎;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/38514.html

相關(guān)文章

  • Python入門網(wǎng)絡(luò)爬蟲(chóng)之精華版

    摘要:學(xué)習(xí)網(wǎng)絡(luò)爬蟲(chóng)主要分個(gè)大的版塊抓取,分析,存儲(chǔ)另外,比較常用的爬蟲(chóng)框架,這里最后也詳細(xì)介紹一下。網(wǎng)絡(luò)爬蟲(chóng)要做的,簡(jiǎn)單來(lái)說(shuō),就是實(shí)現(xiàn)瀏覽器的功能。 Python學(xué)習(xí)網(wǎng)絡(luò)爬蟲(chóng)主要分3個(gè)大的版塊:抓取,分析,存儲(chǔ) 另外,比較常用的爬蟲(chóng)框架Scrapy,這里最后也詳細(xì)介紹一下。 首先列舉一下本人總結(jié)的相關(guān)文章,這些覆蓋了入門網(wǎng)絡(luò)爬蟲(chóng)需要的基本概念和技巧:寧哥的小站-網(wǎng)絡(luò)爬蟲(chóng),當(dāng)我們?cè)跒g覽器中輸入...

    Bmob 評(píng)論0 收藏0
  • 面向?qū)ο蟮姆植际?em>爬蟲(chóng)框架XXL-CRAWLER

    摘要:面向?qū)ο蟮姆植际脚老x(chóng)框架一簡(jiǎn)介概述是一個(gè)面向?qū)ο蟮姆植际脚老x(chóng)框架。分布式集群集群方式維護(hù)爬蟲(chóng)爬蟲(chóng)運(yùn)行數(shù)據(jù),可通過(guò)或定制實(shí)現(xiàn)。 《面向?qū)ο蟮姆植际脚老x(chóng)框架XXL-CRAWLER》 showImg(https://segmentfault.com/img/remote/1460000011842697);showImg(https://segmentfault.com/img/remote...

    anquan 評(píng)論0 收藏0
  • 多線程+代理爬取天天基金網(wǎng)、股票數(shù)據(jù)(無(wú)需使用爬蟲(chóng)框架)

    摘要:本次使用天天基金網(wǎng)進(jìn)行爬蟲(chóng),該網(wǎng)站具有反爬機(jī)制,同時(shí)數(shù)量足夠大,多線程效果較為明顯。技術(shù)路線代理池多線程爬蟲(chóng)與反爬編寫思路首先,開(kāi)始分析天天基金網(wǎng)的一些數(shù)據(jù)。一旦使用多線程,則需要考慮到數(shù)據(jù)的讀寫順序問(wèn)題。 @[TOC] 簡(jiǎn)介 提到爬蟲(chóng),大部分人都會(huì)想到使用Scrapy工具,但是僅僅停留在會(huì)使用的階段。為了增加對(duì)爬蟲(chóng)機(jī)制的理解,我們可以手動(dòng)實(shí)現(xiàn)多線程的爬蟲(chóng)過(guò)程,同時(shí),引入IP代理池進(jìn)行...

    jaysun 評(píng)論0 收藏0
  • MongoDB 4.0 Python3.7 穩(wěn)定高效的評(píng)分制IP代理APIserver

    摘要:項(xiàng)目的主要運(yùn)行部分,采集器驗(yàn)證器打分檢測(cè)等功能實(shí)現(xiàn)的模塊。在中可以配置異步的并發(fā)量等來(lái)控制驗(yàn)證器。調(diào)用有了穩(wěn)定的高分代理數(shù)據(jù),那么就可以掛起一個(gè)為我們的爬蟲(chóng)保駕護(hù)航,這一部分可以單獨(dú)拿出來(lái)編寫,使用其他框架之類的都是不錯(cuò)的選擇。 FooProxy 穩(wěn)健高效的評(píng)分制 IP代理池 + API服務(wù)提供,可以自己插入采集器進(jìn)行代理IP的爬取,支持 MongoDB 4.0 使用 Python3....

    wangjuntytl 評(píng)論0 收藏0
  • MongoDB 4.0 Python3.7 穩(wěn)定高效的評(píng)分制IP代理APIserver

    摘要:項(xiàng)目的主要運(yùn)行部分,采集器驗(yàn)證器打分檢測(cè)等功能實(shí)現(xiàn)的模塊。在中可以配置異步的并發(fā)量等來(lái)控制驗(yàn)證器。調(diào)用有了穩(wěn)定的高分代理數(shù)據(jù),那么就可以掛起一個(gè)為我們的爬蟲(chóng)保駕護(hù)航,這一部分可以單獨(dú)拿出來(lái)編寫,使用其他框架之類的都是不錯(cuò)的選擇。 FooProxy 穩(wěn)健高效的評(píng)分制 IP代理池 + API服務(wù)提供,可以自己插入采集器進(jìn)行代理IP的爬取,支持 MongoDB 4.0 使用 Python3....

    AndroidTraveler 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<