ProxyPool-crawler icon indicating copy to clipboard operation
ProxyPool-crawler copied to clipboard

爬虫获取IP代理网站的有效IP代理地址。建立IP代理池,存在mysql数据库中,提供日常爬虫的IP代理。

ProxyPool

1.配置

安装依赖

pip3 install pymysql
pip3 install requests
pip3 install bs4
pip3 install lxml
pip3 install sqlalchemy

数据库配置

conf/setting.py中配置数据库

DATABASE_URI = 'mysql+pymysql://root:xxx@ip:3306/proxypool?charset=utf8'

初始化数据库

python3 init.py

2.运行

抓取代理IP

python3 proxypool.py 

定时验证IP

python3 verify.py

3 文件系统

ProxyPool
    conf
    	init.py
        settings.py  #数据库的相关配置
    log_files        #日志信息,打印成功与错误日志信息
    	error_log.log   
        info_log.log   
    logger     
    	init.py
        error_log.py  #错误日志处理模块
        info_log.py  #信息处理模块
    logic
    	init.py
        logic_common.py  #通用模块, 获取headers  创建request 时间处理
        logic_proxypool.py   #检验IP是否可用 , 代理池中插入ip ,验证ip信息, 加载未通过验证的ip
    models
    	init.py
        models.py     # id ,ip ,port , utime(修改时间) , ctime(创建时间), 类方法
        proxypool.py  # 插入代理IP , 更新代理IP, 删除代理IP, 获取所有IP 的方法
    proxy_spiders
    	init.py
        spider_66ip.py          #http://www.66ip.cn/  66免费代理
        spider_89ip.py          #http://www.89ip.cn/   89免费代理
        spider_conderbusy.py    #https://proxy.coderbusy.com/   码农代理
        spider_data5u.py        #http://www.data5u.com   无忧代理(好几种)
        spider_kuaidaili.py     #https://www.kuaidaili.com   快代理
        spider_xicidaili.py     #http://www.xicidaili.com   西刺代理
	init.py        #数据库的初始化,并进行建表
    proxypool.py   #抓取ip启动文件
    verify.py      #定时验证ip进行更新

Q/A

如果程序不能运行出bug怎么办?

跟我反馈。

抓取的IP有效期太短,无法忍受怎么办?

当然是选择原谅它,谁让你这么屌丝~