当前位置 博文首页 > 文章内容

    拨号vpsip池搭建

    作者:糖丝橙 栏目:拨号vps 时间:2020-05-13 9:20:15

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



         在爬虫的时候总是会遇到跑的太频繁而导致ip被封号的问题,所以就想着做一个简单的ip池去规避这种反爬取的手段,当然我写的动态ip池功能稍微简单一点,但是也能满足在爬取时遇到的封禁ip的问题。整个流程就是先用get_ip()函数从网上爬取免费的代理ip地址,当然对于这些代理的ip的能使用率是比较低的,我们用redis数据库的zset对其进行存储,zset有序集合比一般的集合多了一个分数的字段,我们可以在存储的过程中给其初始的分数,在check_ip()函数中对其分数进行修改。 check_ip()函数拿出有序集合中的Ip,然后访问百度,测试其是否可用,如果可用就对其分数进行加1操作,(也可以可用就将其分数设为最大值),如果不可用就将其分数减去1,直到为0,从代理池中移去。当然我这个比较简单了,就是单纯的加一减一,能将就用就行了。

         下面直接上代码。

    732ad3810ca68b7f7b4236bf39affcff.png

         总体上来说,这个程序只能说是将就着用吧。还有许多可以改进的地方,首先就是多线程的问题。其次检测函数做的不好,我就是简单的加一减一就行了,实际上可以在检测成功后,直接赋予其默认值也就是最高值比较好一点,失败后减去1并且在分数为0后从ip池中删除掉,这样会更好一点的。用redis的zset去存储ip还是比较好用的,速度快就先不说了,本机上的其他程序可以很方便的去调用这个ip池。我ip池的程序是在pycharm上完成的,在jupyterlab上都很好的调用它,贼方便。

         在调用的时候只需要将ip从redis中导出就行了,而且zset还提供按照分数排序,我们可以很方便的导出那些可用性比较高点的ip。

         如果觉得ip量太少不够用,可以从网上多抓取点。


    文章来源:CSDN博客

    原文链接:https://blog.csdn.net/qq_42232193/article/details/88794551

    如有侵权,请联系本人删除