爬虫学习知识点及案例篇(汇总):
爬虫入门第1课:代理池概述及开发环境
爬虫入门第2课:代理池的设计
爬虫入门第3课:实现代理池思路
爬虫入门第4课:定义代理IP的数据模型类
爬虫入门第5课:实现代理池工具模块
爬虫入门第6课:实现代理池的校验模块
爬虫入门第7课:实现代理池的数据库模块
爬虫入门第8课:实现代理池的爬虫模块
Python爬虫项目:Bilibili模拟登陆(滑动验证码)
本阶段带大家从代理池的设计开始,学习Python爬虫及项目实战,详情关注上方专栏 ↑↑↑
- : 检查代理IP可用性, 保证代理池中代理IP基本可用
-
- 在proxy_test.py中, 创建ProxyTester类
- 提供一个 方法, 用于处理检测代理IP核心逻辑
- 从数据库中获取所有代理IP
- 遍历代理IP列表
- 检查代理可用性
- 如果代理不可用, 让代理分数-1, 如果代理分数等于0就从数据库中删除该代理, 否则更新该代理IP
- 如果代理可用, 就恢复该代理的分数, 更新到数据库中
- 为了提高检查的速度, 使用异步来执行检测任务
- 把要检测的代理IP, 放到队列中
- 把检查一个代理可用性的代码, 抽取到一个方法中; 从队列中获取代理IP, 进行检查; 检查完毕, 调度队列的task_done方法
- 通过异步回调, 使用死循环不断执行这个方法,
- 开启多个一个异步任务, 来处理代理IP的检测; 可以通过配置文件指定异步数量
- 使用模块, 每隔一定的时间, 执行一次检测任务
- 定义类方法 , 用于启动检测模块
- 在方法中
- 创建本类对象
- 调用run方法
- 每间隔一定时间, 执行一下, run方法
-
- 在proxy_test.py中, 创建ProxyTester类
-
提供一个 方法, 用于检查代理IP的可用性
-
为了提高检查的速度, 使用异步来执行检测任务
- 在初始化方法中
- 创建一个队列, 用于存储代理IP
- 创建协程池, 用于实现异步检查
- 修改 方法:
- 从数据库中获取代理IP, 添加到队列中
- 把检查代理可用性的代码抽取一个方法;
- 在该方法中, 队列中取出一个代理来检查
- 检查完毕调用一下队列的task_done方法
- 使用协程池的异步来执行提取的方法, 但是只能检查一个代理IP;
- 通过异步回调, 实现死循环检查.
-
通过配置文件,配置异步数量
- 在初始化方法中
- 每隔一定的时间, 执行一次爬取任务
- 修改 文件, 检查代理IP可用性间隔时间的配置
- 在 中提供start的类方法, 用于启动爬虫的运行, 每间隔指定时间, 重新运行一次.
-
完整代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!