cralwer_爬虫代理中心的简要设计
代理中心:
简单讲: 精细化控制限制资源的使用,保证有限资源的充分利用及有效性。支持动态增减,实时更新。
需求
rest api提供请求输入与输出
客户端使用代理心跳接收,用于更新代理的使用次数,被占用情况
监测代理可用情况,检查代理对指定请求的响应
按客户端,线程名称,请求任务号,分配代理
代理中心表的curd操作
主要逻辑
简单讲: 精细化控制限制资源的使用,保证有限资源的充分利用及有效性。支持动态增减,实时更新。
回收监控
代理验证
数据表
代理信息表
主键,代理ip,代理端口(-1时为本机代理),用户名,密码,最多允许多少机器使用,
代理体眠时间(扔回代理池后,再次被使用),
代理使用最低间隔(同一个task请求间隔,两者取大),
代理最后使用时间
代理使用次数
代理可用状态
代理标记位(int数值位)
创建时间
最后修改时间
代理组(用于申请时,可以指定代理组)
备注
代理验证申请表
主键,爬虫任务id,请求url,请求参数,最长响应时间,返回内容检测,检测类型(contains regex)
创建时间,最后修改时间,申请状态(初始,进行中,已完成,失败),申请代理个数
创建时已验证代理数,当前已验证代理数,是否在上次申请基础上新增(上次代理数超过时,非新增将不验证)
代理组(只从某个代理组中获取)
代理验证表
验证申请id(pk),爬虫任务id,代理id,验证可用状态,响应时长,验证标记位,
使用次数,使用成功次数,使用失败次数,最后使用时间,
代理分配表
主键,爬虫任务id,验证申请id,代理id,客户端标识,线程标识,
使用次数,使用成功次数,使用失败次数,最后使用时间,分配状态(已分配,已回收,超时未知)
创建时间,修改时间,回收时间,心跳次数,最后一次心跳时间
公用配置表
代理失效回收时间
心跳发送间隔
dao层业务
爬虫数据库通用dao业务:
1、各表的单条记录的curd(更改字段属性)
2、心跳更新(2,3,4扩展dao实现)
3、查询代理入代理验证表
4、查询代理验证表到代理分配表
cralwer_爬虫代理中心的简要设计的更多相关文章
- Python爬虫代理池
爬虫代理IP池 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速稳定的运行,当然在公司做的东西不能开源出来 ...
- 介绍一种 Python 更方便的爬虫代理池实现方案
现在搞爬虫,代理是不可或缺的资源 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那 ...
- 通过爬虫代理IP快速增加博客阅读量——亲测CSDN有效!
写在前面 题目所说的并不是目的,主要是为了更详细的了解网站的反爬机制,如果真的想要提高博客的阅读量,优质的内容必不可少. 了解网站的反爬机制 一般网站从以下几个方面反爬虫: 1. 通过Headers反 ...
- 【python3】如何建立爬虫代理ip池
一.为什么需要建立爬虫代理ip池 在众多的网站防爬措施中,有一种是根据ip的访问频率进行限制的,在某段时间内,当某个ip的访问量达到一定的阀值时,该ip会被拉黑.在一段时间内被禁止访问. 这种时候,可 ...
- 维护爬虫代理IP池--采集并验证
任务分析 我们爬的免费代理来自于https://www.kuaidaili.com这个网站.用`requests`将ip地址与端口采集过来,将`IP`与`PORT`组合成`requests`需要的代理 ...
- 建立爬虫代理IP池
单线程构建爬虫代理IP池 #!/usr/bin/python3.5 # -*- coding:utf-8 -*- import time import tempfile from lxml impor ...
- 写了个爬虫代理ip的脚本给大家使用
写了个爬虫代理ip的脚本给大家使用 一.代码 import requests from lxml.html import etree url = 'http://www.kuaidaili.com/f ...
- 可能是一份没什么用的爬虫代理IP指南
写在前面 做爬虫的小伙伴一般都绕不过代理IP这个问题. PS:如果还没遇到被封IP的场景,要不就是你量太小人家懒得理你,要不就是人家压根不在乎... 爬虫用户自己是没有能力维护一系列的代理服务器和代理 ...
- Python爬虫代理IP池
目录[-] 1.问题 2.代理池设计 3.代码模块 4.安装 5.使用 6.最后 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代 ...
随机推荐
- rhel5.8 ISO yum源配置
[root@lei1 mnt]# mkdir /mnt/iso [root@lei1 mnt]# mkdir /mnt/cdrom [root@lei1 ~]# mv rhel-server-5.8- ...
- CareerCup chapter 1 Arrays and Strings
1.Implement an algorithm to determine if a string has all unique characters What if you can not use ...
- fiddler打开后 浏览器就上不了网的解决方法
fiddler设置一下即可 Tools fiddler options connections 不要选中 Act as system proxy on startup
- 你听说过XML吗?
我们每天都会见到各种各样的书,今天我们就来谈一谈有关书籍带给我们学习的启发. 正如上图所看到的,不同的书籍有不同的外观,比如教科书.儿童图书等:而且书也不是随便能够出版的,要有自己文档结构,语义规则. ...
- Android - 数据存储 -在SQL数据库中保存数据
对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...
- 开源Math.NET基础数学类库使用(12)C#随机数扩展方法
原文:[原创]开源Math.NET基础数学类库使用(12)C#随机数扩展方法 本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...
- 【Android基础】Activity之间进行参数传递的三种方式
1.使用Intent进行传输 //发送数据的Activity class button implements OnClickListener{ @Override public void onClic ...
- 一切从编辑器说起:web前端代码编辑器
俗话说:工欲善其事,必先利其器. 工欲善其事必先利其器.谓工匠想要使他的工作做好,一定要先让工具锋利.比喻要做好一件事,准备工作非常重要. 前端写代码也是一样,需要一个好的适合自己的代码编辑器. 我想 ...
- CF 444B(DZY Loves FFT-时间复杂度)
B. DZY Loves FFT time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- Cocos2d-x 手机游戏《疯狂的蝌蚪》资源 “开源” win32+安德鲁斯+iOS三合一
郝萌主倾心贡献,尊重作者的劳动成果,转载请注明出处 From郝萌主. 假设文章对您有所帮助.欢迎给作者捐赠,支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载 ...