高效IP代理池解决方案:深度挖掘MongoDB数据库潜力

更新:11-15 名人轶事 我要投稿 纠错 投诉

大家好,今天来为大家分享高效IP代理池解决方案:深度挖掘MongoDB数据库潜力的一些知识点,和的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

````

#-*-编码=utf-8-*-

进口请求

fromlxmlimporte树

导入时间

导入pymongo

来自多处理导入池

类Getproxy(对象):

def__init__(自身):

self.headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML,如Gecko) Chrome/59.0.3071.115 Safari/537.36"}

self.url="http://www.xicidaili.com/wt/"

self.client=pymongo.MongoClient("localhost",27017)

self.xici=self.client["xici"]

self.xiciipinfo=self.xici["xiciipinfo"]

#self.removeip="127.0.0.1" #第一次运行时会检测到该变量,因为只有检测失败才会赋值。

defgetip(self,num):

#爬取西庙所有代理并更新到数据库中

url=self.url + str(num)

wb_data=requests.get(url,headers=self.headers)

html=etree.HTML(wb_data.text)

# htmls=etree.tostring(html)

ips=html.xpath("//tr[@class="odd"]/td[2]/text()")

ports=html.xpath("//tr[@class="odd"]/td[3]/text()")

协议=html.xpath("//tr[@class="odd"]/td[6]/text()")

区域=html.xpath("//tr[@class="odd"]/td[4]/a/text()")

forip,端口,协议,区域inzip(ips,端口,协议,区域):

数据={

"ip": ip,

‘端口’:端口,

"协议":协议,

‘区域’:区域,

}

打印数据

#self.xiciipinfo.insert_one(数据)

#if self.removeip !=ip: #这里添加判断。如果是下面检测到的不可用IP,则不会更新并录入数据库,这样可以节省下面的检测时间。

self.xiciipinfo.update({"ip":ip},{"$set":data},True)

defcount(自身,num):

foriinrange(1,num):

self.gettip(i)

时间.睡眠(2)

defdbclose(自我):

self.client.close()

defgetiplist(自我):

#将数据库中的数据整理成列表

ips=self.xiciipinfo.find()

代理列表=[]

福里尼普斯:

b="http"+"://"+ i["ip"] +":"+ i["端口"]

代理={"http": b}

# 打印代理

proxylist.append(代理)

# 打印代理列表

返回代理列表

defiptest(自我,代理):

#检测IP,更新到数据库,删除不可用的IP

ip=proxy["http"][7:].split(":")[0]

尝试:

requests.get("http://wenshu.court.gov.cn/",proxies=proxy,timeout=6)

除了:

print "字段.."

#self.removeip=ip #给class属性赋值

self.xiciipinfo.remove({"ip": ip})#使用remove方法删除符合条件的

print"现在删除它.{}".format(ip)

否则:

打印".成功"

打印代理

if__name__=="__main__":

池=池()

代理=Getproxy()

代理.计数(2)

iplist=proxy.getiplist()

地图(代理.iptest,iplist)

proxy.dbclose()

关于高效IP代理池解决方案:深度挖掘MongoDB数据库潜力到此分享完毕,希望能帮助到您。

用户评论

此生一诺

这篇文章一定讲的是如何用MongoDB来管理IP代理!

    有11位网友表示赞同!

旧爱剩女

终于有人想到用MongoDB存储了,之前一直感觉这种数据结构特别适合.

    有17位网友表示赞同!

红玫瑰。

想知道这个IP代理池的性能如何,能不能满足高量访问的需求?

    有16位网友表示赞同!

半梦半醒i

是不是可以用Mongodb自带的geo-spatial支持让代理分地区管理?

    有5位网友表示赞同!

纯真ブ已不复存在

如果能做到自动刷新和校验,那就更棒了!这样能保证代理池的可用性。

    有13位网友表示赞同!

娇眉恨

MongoDB对大规模数据的处理能力怎么样呢?怕不是会出问题的...

    有8位网友表示赞同!

浅嫣婉语

这篇文章肯定会解释如何查询和管理IP代理资源,很期待看到实际代码的示例

    有13位网友表示赞同!

青瓷清茶倾城歌

希望作者能讲清楚什么类型的IP代理池是基于MongoDB搭建的!

    有11位网友表示赞同!

雨后彩虹

我一直在寻找一种方法用数据库来组织我的IP代理信息,这个听起来很不错啊!

    有5位网友表示赞同!

盲从于你

这篇文章肯定会介绍一些MongoDB的特性,以及如何将其应用于IP代理池管理。

    有12位网友表示赞同!

孤自凉丶

我对MongoDB的查询功能感兴趣,不知道能不能快速找到特定类型的IP代理?

    有18位网友表示赞同!

千城暮雪

如果能把IP代理池部署到云平台上就更好了!方便扩展和维护

    有8位网友表示赞同!

tina

这篇文章是不是会介绍一些安全方面的考虑呢?毕竟代理池涉及到网络隐私...

    有12位网友表示赞同!

ヅ她的身影若隐若现

我之前用过MongoDB,感觉它的文档管理功能很强大,这篇文章一定会让我有所收获!

    有12位网友表示赞同!

水波映月

这个IP代理池基于MongoDB数据库吗?我需要学习一下!

    有7位网友表示赞同!

暮光薄凉

希望文章能讲解如何实现分布式存取和数据同步。

    有11位网友表示赞同!

回到你身边

要是能写篇关于部署和维护的指南就好了,那样就能更好地实践了!

    有15位网友表示赞同!

?亡梦爱人

这个IP代理池有什么具体的应用场景呢?我很想知道!

    有11位网友表示赞同!

【高效IP代理池解决方案:深度挖掘MongoDB数据库潜力】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:爱情狂想曲:第十七章——命运之网 下一篇:如何轻松更改文件扩展名