python写的代理IP抓取与测试工具
项目结构:
Multirun是多线程相关代码。
Task是任务封装。
MultiTaskRun.py是线程启动与任务封装。
主要业务相关代码在Proxy中。
conf.py是数据库配置。
db_public.py是数据查询与写入的代码。
Pool是池子,主要用于减少数据库连接与断开的次数。
Http.py简易的封装了http请求,使用起来方便一些。
Proxy.py主要是各个代理网站的爬取方式。
proxy2.sql是数据库结构。
项目从RunProxy.py启动1
2
3
4
5
6
7
8
9
10
11if __name__ == "__main__":
# 对已有的IP进行测试
q = db_public.get_proxy2_ip_queue()
MultiTaskRun.multi_thread_run_base_task(q, test_proxy, 4 * cpu_count())
# 找新的IP并入库
q = queue.Queue()
tn = 6 # type
for x in range(0, tn):
q.put(x)
MultiTaskRun.multi_thread_run_base_task(q, find_new_proxy, tn)
git 地址:git@gitee.com:user.zt/Proxy.git
csdn资源 https://download.csdn.net/download/x82488059/12036103从这里下载需要积分。
注意conf.py并没有上传到git,下面是conf.py的代码。conf.py位于Proxy文件夹下。
conf.py1
2
3
4
5
6
7
8#!/usr/bin/python3
# -*- coding: utf-8 -*-
db_charset = 'utf8'
db_public = 'dbname'
db_public_host = '127.0.0.1'
db_public_user_name = 'root'
db_public_user_pwd = 'pwd'
db_port = 3306