如题,笔者最近在寻找自建ip池的过程中遇到了一些问题,这些问题并不复杂,主要是一些细节,但是由于笔者之前没有遇到过这些情况所以花了不少时间来解决这些问题,以下先介绍自建ip池的一种方法。

自建ip池的逻辑其实很简单,可以分为四个部分:

第一部分:获取ip

从免费ip代理网站中,通过爬取网页源代码的方式将这些ip获取。这部分其实就是涉及到基础的网页爬虫知识。

第二部分:存储ip

第二部分为什么要单独罗列出来呢?因为所谓的存储ip并不是简单的把获取的ip存储下来,我们并不是要所有获取的ip,而是要把获取的ip中,效果特别好的,比较稳定的作为最终的存储(注意,这里强调的是最终的存储)。所以第二部分存储ip实际上还连接着判断ip代理性能的第三部分————检测模块。当然,存储模块本身还需具有另一些判断,例如判断ip是否具有重复情况等。一般来说,存储部分会使用到Redis这一软件。

第三部分:检测ip效果

这部分笔者直接引用崔庆才《python3网络爬虫开发实战》中给出的方法。即通过一种对ip进行评分的方式进行检测。方法的逻辑也很简单,使用获取的ip登录某一网站,这个网站可以是你最终想要爬取的某个网站,可以是某个不会封禁ip的网站。读者可能会有疑问,如何确保每个ip都能够被快速检测呢?这里便需要用到异步,代码中使用的是aiohttp异步的方式。(显然,大家也可以通过多线程或者多进程的方式检测)。

第四部分:API接口

第四部分其实就是获取已经评分后的好ip的方式。实际上,这部分有两种方法,第一种方法是通过存储ip这部分中的RedisClilent类来实现,此类中有一个random方法可以返回ip。

这种方法会有一些问题,由于笔者目前还看不懂这些问题,所以先不写了。作者使用的方式是通过Flask(一种网页框架)启动一个Web服务,使用者只需要访问该Web网页即可。

那么,关于自建ip池的具体代码,可以直接通过一个github上的开源代码下载即可,代码网址如下

GitHub - Python3WebSpider/ProxyPool: An Efficient ProxyPool with Getter, Tester and Server

读者只需要通过该网站将代码的zip压缩文件下载下来即可。

接下来便是笔者下载并压缩该文件之后遇到的问题了……

问题一概述:笔者将下载下来的压缩文件放到了某一文件夹中,注意,我是直接放到某一文件中的,而不是把压缩的文件夹作为一个单独的文件。于是,笔者就发现了一个问题,即代码中最开始的引用部分出现了很多红线,具体如下图所示:

我在当时百思不得其解,以为是pycharm版本或者库出现了什么问题。后面搜索了一下关于     PyCharm里from...import...出现波浪线标红的情况,才知道这是Pycharm中项目工作区的问题,即当用户还没运行某一文件的时候,Pycharm会默认为将项目文件夹作为工作区,在上图中,便是我创建的名称为ip池的这一文件作为工作区。那么如何使工作区变为ProxyPool-master这一文件呢?

步骤如下:在文件选项中选中下面的设置选项

然后选择项目结构

然后点击添加内容根下的删除键

接下来点击添加内容根,将ProxyPool-master作为内容根文件夹即可。

这样开头的波浪线便能去除了。

问题二概述:笔者是在2022的8月9号使用的该代码,这时代码中添加了部分库,笔者在使用的时候Pycharm中提示了不满足软件包要求。即部分库的版本不符合或者没安装某库。需要安装的库实际上在文件夹中的某一txt文件中,该文件名为requirements.txt,里面罗列了需要的各个库。

当时,笔者直接通过点击提示进行库的安装,但是没有成功。所以又尝试了另一些方法,例如,按照官方的提示,通过

pip3 install -r requirements.txt进行依赖包的安装,实际上,具体代码应该写为 pip install -r绝对路径/requirements.txt,绝对路径可以通过文件属性中的文件位置找到。当然,这种方法也失败了。

如果读者尝试了以上两种方法后仍然失败,便可以通过在控制台或者终端里面直接pip install 库名一个个安装,例如对于第一个库——environs>=9.3.0,<10.0.0,读者只需要pip install environs==9.3.0即可。笔者成功安装了上述库,除了其中的一个库——meinheld>=1.0.0,<2.0.0。

结果提示出现以下错误:

明明有1.0.0的库,为什么无法安装?实际上这似乎是因为系统的问题,笔者使用的windows系统会出现一个问题,这个问题便是图片里面最上面提到的,Are you really running a posix compliant OS?Be posix compliant is mandatory.

所谓的posix实际上是一个unix操作系统的软件,(必须要在linux上才能运行),所以windows系统是没法安装这个库的,但这并不影响,因为笔者尝试运行了下程序发现是没有问题的。

问题三:笔者成功运行了run.py程序,登录了localhost:5555/random这一端口,但是在关闭了程序之后又重新打开,发现localhost:5555再也无法进去了。经过询问之后才知道,似乎是ip池第一次运行后关闭时没有完全关闭,我解决的方法是通过重启电脑,之后便没有出现这个问题了。

关于自建ip池可能出现的问题相关推荐

  1. 爬虫采集自己构建代理ip池有什么优势?

    为何一些爬虫采集的专业技术人员购买了代理ip还会继续自己构建一个ip池,自己构建ip池有什么优势? (1)可无限制的调用API获取代理ip; 购买收费的代理ip,绝大多数都会提供API链接接口,客户利 ...

  2. 自建免费的代理ip池

    写在前面 因为爬虫被禁ip这样的反扒真的很凶,但自从建了一个代理ip池以后,反反扒就可以跟的上节奏.当然你也可以上网上各种代理平台自己付费.这些平台当然很方便提供api调用,还不用自己验证.但你不想付 ...

  3. 【python】爬虫入门:代理IP池的使用、文件的写入与网易云爬取时的注意事项

    一.概述 在两天前实现利用爬虫爬取网易云音乐用户的各类公开信息之后,我对现有爬虫进行了功能上的增加.主要有: ①.使用代理IP池防止IP被封: ②.将爬取用户的听歌记录.歌单.关注.粉丝这四类数据的代 ...

  4. 使用爬虫实现代理IP池之放弃篇

    2019独角兽企业重金招聘Python工程师标准>>> 啥叫代理IP以及代理IP池 概念上的东西网上搜索一下就好了,这里简单科普一下(大部分会读这篇文章的人,基本是不需要我来科普的) ...

  5. Python爬虫 教程:IP池的使用

    一.简介 爬虫中为什么需要使用代理 一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会禁止这个IP的访问.所以我们需要设 ...

  6. 构建一个给爬虫使用的代理IP池

    做网络爬虫时,一般对代理IP的需求量比较大.因为在爬取网站信息的过程中,很多网站做了反爬虫策略,可能会对每个IP做频次控制.这样我们在爬取网站时就需要很多代理IP. 代理IP的获取,可以从以下几个途径 ...

  7. 做了一个动态代理 IP 池项目,邀请大家免费测试~

    长期在掘金潜水, 现在打算出来创业了,目前公司在深圳. 做了点啥呢, 就是给爬虫用的动态代理 IP 池啦. 目前运行很稳定, 邀请大家来免费测试使用, 获取免费激活码:微信公众号"2808p ...

  8. 爬虫单个ip代理设置_爬虫怎么设置代理ip池?

    网络技术现在是如此发达,用户换ip再也不用自己手动来,很多ip代理都是傻瓜式操作,智能完成切换,完全不用使用者操心. 像在我们在利用网络爬虫开展数据采集,遇到爬取频率过高.频次过多的问题,会碰到ip被 ...

  9. Python爬虫-代理ip池建立

    代理IP池建立 前言 之前提到过urllib和requests的利用代理ip的访问方式 . https://blog.csdn.net/zhouchen1998/article/details/813 ...

最新文章

  1. 解决kubernetes中ingress-nginx配置问题
  2. Android复习01(内部存储、外部存储、SD卡存储、XML解析、Json解析、保存登录密码)
  3. 图像文字识别(三):Tesseract4.0训练字库,提高正确识别率
  4. npm 安装less插件_IDEA编译less插件LESS CSS Compiler的安装
  5. 我这么努力读个博士,难道只是为了进个高校拿5000每月的工资?
  6. Linux—JVM等性能调优监控
  7. 系统架构师学习笔记_第六章(下)_连载
  8. Android平台Native开发与JNI机制详解
  9. 开源工业物联网数据库 Apache IoTDB 毕业成为 Apache 顶级项目!
  10. php函数find的用法,fleaphp crud操作之findByField函数的用法
  11. 图片PDF转word
  12. [附源码]计算机毕业设计JAVA 宠物医院管理系统
  13. excel表格如何转换成word表格_轻松将Excel表格完美转换成Word文档
  14. ESP32片外PSRAM
  15. 李沐d2l《动手学深度学习》第二版——风格迁移源码详解
  16. Excel 转 vCard格式、CSV格式
  17. 阿里云天池大赛——机器学习篇赛题解析(赛题一)下
  18. matlab while 嵌套,MATLAB嵌套循环语句
  19. 《CSDN云原生工程师能力认证——IT人才进名企的牵引者》
  20. 前端工作时必备网站(纯手工总结)

热门文章

  1. 2022年复合挤出机市场前景分析及研究报告
  2. IBM Watson健康与美国糖尿病协会结成合作伙伴
  3. TensorFlow2.0学习笔记-3.模型训练
  4. 物体移动时,面朝移动方向旋转
  5. 产品设计中的五个层次需求,你知道吗?
  6. Windows 程序设计
  7. 视频/音频(H.264,mp4)的基础参数
  8. iphone和mac互传文件_mac和windows怎么互传文件_让mac和windows电脑互传文件的方法-系统城...
  9. 07 linux 一个完整的shell脚本调试工具
  10. linux服务器用lighttpd+mysql5+php5+SupeSite/X-Space+discuz构建社区门户