0 Star 0 Fork 0

AlMirai / ProxyCollect

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

ProxyCollect

介绍

爬取代理IP放入MySQL

运行环境

于Ubuntu18.04测试通过

  • 语言:Python3.6+
    • pip包:
      1. pymysql
      2. requests
      3. flask
  • 数据库:MySQL
    • 配置详见util.setting.py
  • 定时启动:crontab
    • 任务:
      1. proxy.collect.py,定时数据采集
      2. proxy.verify.py,定时验证数据有效性
  • api:flask
    • 访问:
      1. www.index.py,启动api,并负责flask转发

文件结构

——log: 日志
    ——error.txt: 错误
    ——info.txt: 信息
——proxy: 爬虫的爬取与验证
    ——get.py: 爬取代理
    ——collect.py: 开始爬取
    ——verify.py: 开始验证数据库
——util: 工具
    ——checkproxy.py: 代理检测
    ——connect.py: 连接数据库
    ——dao.py: DAO组件
    ——logger.py: 自定义日志
    ——setting.py: 配置文件
    ——util.py: 其他工具
——www: api
    ——index.py: flask转发
    ——api.py: api返回代理

使用说明

  1. 数据库(MySQL)
    1. 数据库设置,将配置文件中的IPPORT修改为对应信息
    2. 增加MySQL表,并将配置文件中的DBNAMETBNAMECHARSET修改为对应信息
      CREATE SCHEMA `webspider` DEFAULT CHARACTER SET utf8mb4 ;
      CREATE TABLE `proxy` (
          `protocol` enum('HTTP','HTTPS') NOT NULL DEFAULT 'HTTP',
          `ip` varchar(15) NOT NULL,
          `port` smallint(5) unsigned NOT NULL,
          `anonymous` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:高匿\\n0:透明',
          `domestic` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:国内\n0:国外',
          `address` varchar(45) DEFAULT '' COMMENT '地点详细信息',
          `speed_req` float unsigned DEFAULT '10' COMMENT 'requests',
          `speed_tcp` float unsigned DEFAULT '10' COMMENT 'sock',
          `speed_chkip` float unsigned DEFAULT '10' COMMENT 'chkip',
          `verifytime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
          PRIMARY KEY (`protocol`,`ip`,`port`)
          ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代理池'
    3. 添加MySQL用户,应至少具有selectupdateinsert权限,并将配置文件中的USERPASSWORD修改为对应信息
      CREATE USER 'spider'@'%' IDENTIFIED BY 'password';
      GRANT insert,update,delete on webspider.proxy to 'spider';
  2. 文件修改
    1. proxy.collect, proxy.verifywww.index中的DIR修改为自己的目录
  3. 添加定时任务
    1. proxy/collect.pyproxy/verify.py添加至定时任务,用以定时采集和定时验证
      crontab为例,用法见Linux crontab命令 | 菜鸟教程
      # 每60分钟运行一次collect
      */60 * * * * sudo python3 ~/ProxyCollect/proxy/collect.py
      # 每30分钟运行一次verify
      */30 * * * * sudo python3 ~/ProxyCollect/proxy/verify.py
  4. 启动api
    1. 由index.py转发至api,需启动index.py
    python3 index.py

Repository Comments ( 0 )

Sign in to post a comment

About

爬取代理IP放入MySQL expand collapse
Python
AGPL-3.0
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Python
1
https://gitee.com/AlMirai/ProxyCollect.git
git@gitee.com:AlMirai/ProxyCollect.git
AlMirai
ProxyCollect
ProxyCollect
master

Search