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.最后 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代 ...
随机推荐
- java nio 网络框架实现(转)
maven项目https://github.com/solq360/common 链式编/解码 链路层链式处理 管道管理socket 多协议处理非常方便 仿netty NioEventLoop 单线程 ...
- EasyUI实战经验总结(转)
最近公司培训EasyUI,就做下总结吧,给有需要的人,源码在文章最后. 1.最常用的表格 ? 1 2 3 <div class="easyui-panel" data-opt ...
- IIS7和IIS7.5备份和还原的方法
windows2008的iis配置备份和iis6不同,在iis7中没有了6原来的保存配置xml的选项,而采用的是dos命令来进行iis7的备份.以下是win2008上iis7备份的方法. 首先打开CM ...
- Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse
原文:Chapter 1 Securing Your Server and Network(7):禁用SQL Server Browse 原文出处:http://blog.csdn.net/dba_h ...
- 安装numpy、nltk问题汇总
系统环境是win7(64bit)+python3.4(64bit)+numpy1.82+vs2012 1.假设用sourceforge上编译好的32bit的exe安装,会提示'python versi ...
- oracle设备
# Oracle Environment export ORACLE_BASE=/opt/oracle export ORACLE_HOME=/opt/oracle/product/11gR2/db ...
- [Django1.6]south于django1.6使用
south在django1.6中的使用 django1.7中已经支持数据合并了,所以仅仅能在django1.4 1.5 1.6的版本号中使用south. south的主要作用就是做数据的合并,当我们在 ...
- IBatis.net初步使用
最近加班比较忙,时间也比较琐碎,蛮久没有写东西了.这次就总结一下自己使用IBatis.net的一些总结吧. IBatis简介 IBatis.net是一款开源的Orm框架,应该算是从java的IBati ...
- hdoj 2063 过山车 【双边匹配匈牙利算法】
过山车 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- JUnit实战(2) - JUnit核心(使用Suite来组合测试)
创建Java Project项目:ch02-internals MasterTestSuite.java package com.manning.junitbook.ch02.internals; i ...