From acce5a7a4d747d0a30d6d5dd54a3b9daf0f8da65 Mon Sep 17 00:00:00 2001
From: qiyeboy <594675898@qq.com>
Date: Mon, 16 Jan 2017 22:35:56 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6py2=E5=92=8Cpy3=E7=89=88?=
=?UTF-8?q?=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IPProxyPool_py2/IPProxy.py => IPProxy.py | 8 +-
IPProxyPool_py2/config.py | 193 ------------------
IPProxyPool_py2/data/proxy.db | Bin 18432 -> 0 bytes
IPProxyPool_py2/db/DataStore.py | 49 -----
IPProxyPool_py2/db/RedisHelper.py | 31 ---
IPProxyPool_py2/db/SqlHelper.py | 146 -------------
IPProxyPool_py2/spider/HtmlDownLoader.py | 73 -------
IPProxyPool_py2/spider/HtmlPraser.py | 168 ---------------
IPProxyPool_py2/spider/ProxyCrawl.py | 97 ---------
IPProxyPool_py2/test/test.py | 16 --
IPProxyPool_py2/test/testHttpbin.py | 8 -
IPProxyPool_py2/test/testIPType.py | 44 ----
IPProxyPool_py2/test/testbase64.py | 11 -
IPProxyPool_py2/test/testhttpserver.py | 45 ----
IPProxyPool_py2/test/testlist.py | 40 ----
IPProxyPool_py2/test/testlxml.py | 171 ----------------
IPProxyPool_py2/test/testqueue.py | 9 -
IPProxyPool_py2/util/IPAddress.py | 147 -------------
IPProxyPool_py2/util/logger.py | 11 -
IPProxyPool_py2/validator/Validator.py | 170 ---------------
IPProxyPool_py3/IPProxy.py | 33 ---
IPProxyPool_py3/api/__init__.py | 1 -
IPProxyPool_py3/api/apiServer.py | 43 ----
IPProxyPool_py3/data/qqwry.dat | Bin 9290764 -> 0 bytes
IPProxyPool_py3/db/ISqlHelper.py | 22 --
IPProxyPool_py3/db/MongoHelper.py | 58 ------
IPProxyPool_py3/db/__init__.py | 1 -
IPProxyPool_py3/spider/__init__.py | 1 -
IPProxyPool_py3/start.bat | 1 -
IPProxyPool_py3/test/__init__.py | 1 -
IPProxyPool_py3/test/testsql.py | 12 --
IPProxyPool_py3/util/__init__.py | 2 -
IPProxyPool_py3/util/exception.py | 14 --
IPProxyPool_py3/validator/__init__.py | 1 -
README.md | 10 +-
{IPProxyPool_py2/api => api}/__init__.py | 0
{IPProxyPool_py2/api => api}/apiServer.py | 0
IPProxyPool_py3/config.py => config.py | 0
{IPProxyPool_py2/data => data}/qqwry.dat | Bin
{IPProxyPool_py3/db => db}/DataStore.py | 0
{IPProxyPool_py2/db => db}/ISqlHelper.py | 0
{IPProxyPool_py2/db => db}/MongoHelper.py | 22 +-
{IPProxyPool_py3/db => db}/RedisHelper.py | 0
{IPProxyPool_py3/db => db}/SqlHelper.py | 0
{IPProxyPool_py2/db => db}/__init__.py | 0
.../spider => spider}/HtmlDownloader.py | 1 -
.../spider => spider}/HtmlPraser.py | 43 ++--
.../spider => spider}/ProxyCrawl.py | 1 -
.../spider => spider}/__init__.py | 0
IPProxyPool_py2/start.bat => start.bat | 0
{IPProxyPool_py2/test => test}/__init__.py | 0
{IPProxyPool_py3/test => test}/test.py | 0
.../test => test}/testIPAddress.py | 0
{IPProxyPool_py3/test => test}/testIPType.py | 2 +-
{IPProxyPool_py3/test => test}/testbase64.py | 0
.../test => test}/testhttpserver.py | 2 +-
{IPProxyPool_py3/test => test}/testlist.py | 0
{IPProxyPool_py3/test => test}/testlxml.py | 0
{IPProxyPool_py3/test => test}/testqueue.py | 0
{IPProxyPool_py2/test => test}/testsql.py | 0
{IPProxyPool_py3/util => util}/IPAddress.py | 13 +-
{IPProxyPool_py2/util => util}/__init__.py | 0
util/compatibility.py | 22 ++
{IPProxyPool_py2/util => util}/exception.py | 0
{IPProxyPool_py3/util => util}/logger.py | 0
.../validator => validator}/Validator.py | 3 -
.../validator => validator}/__init__.py | 0
67 files changed, 85 insertions(+), 1661 deletions(-)
rename IPProxyPool_py2/IPProxy.py => IPProxy.py (92%)
delete mode 100644 IPProxyPool_py2/config.py
delete mode 100644 IPProxyPool_py2/data/proxy.db
delete mode 100644 IPProxyPool_py2/db/DataStore.py
delete mode 100644 IPProxyPool_py2/db/RedisHelper.py
delete mode 100644 IPProxyPool_py2/db/SqlHelper.py
delete mode 100644 IPProxyPool_py2/spider/HtmlDownLoader.py
delete mode 100644 IPProxyPool_py2/spider/HtmlPraser.py
delete mode 100644 IPProxyPool_py2/spider/ProxyCrawl.py
delete mode 100644 IPProxyPool_py2/test/test.py
delete mode 100644 IPProxyPool_py2/test/testHttpbin.py
delete mode 100644 IPProxyPool_py2/test/testIPType.py
delete mode 100644 IPProxyPool_py2/test/testbase64.py
delete mode 100644 IPProxyPool_py2/test/testhttpserver.py
delete mode 100644 IPProxyPool_py2/test/testlist.py
delete mode 100644 IPProxyPool_py2/test/testlxml.py
delete mode 100644 IPProxyPool_py2/test/testqueue.py
delete mode 100644 IPProxyPool_py2/util/IPAddress.py
delete mode 100644 IPProxyPool_py2/util/logger.py
delete mode 100644 IPProxyPool_py2/validator/Validator.py
delete mode 100644 IPProxyPool_py3/IPProxy.py
delete mode 100644 IPProxyPool_py3/api/__init__.py
delete mode 100644 IPProxyPool_py3/api/apiServer.py
delete mode 100644 IPProxyPool_py3/data/qqwry.dat
delete mode 100644 IPProxyPool_py3/db/ISqlHelper.py
delete mode 100644 IPProxyPool_py3/db/MongoHelper.py
delete mode 100644 IPProxyPool_py3/db/__init__.py
delete mode 100644 IPProxyPool_py3/spider/__init__.py
delete mode 100644 IPProxyPool_py3/start.bat
delete mode 100644 IPProxyPool_py3/test/__init__.py
delete mode 100644 IPProxyPool_py3/test/testsql.py
delete mode 100644 IPProxyPool_py3/util/__init__.py
delete mode 100644 IPProxyPool_py3/util/exception.py
delete mode 100644 IPProxyPool_py3/validator/__init__.py
rename {IPProxyPool_py2/api => api}/__init__.py (100%)
rename {IPProxyPool_py2/api => api}/apiServer.py (100%)
rename IPProxyPool_py3/config.py => config.py (100%)
rename {IPProxyPool_py2/data => data}/qqwry.dat (100%)
rename {IPProxyPool_py3/db => db}/DataStore.py (100%)
rename {IPProxyPool_py2/db => db}/ISqlHelper.py (100%)
rename {IPProxyPool_py2/db => db}/MongoHelper.py (67%)
rename {IPProxyPool_py3/db => db}/RedisHelper.py (100%)
rename {IPProxyPool_py3/db => db}/SqlHelper.py (100%)
rename {IPProxyPool_py2/db => db}/__init__.py (100%)
rename {IPProxyPool_py3/spider => spider}/HtmlDownloader.py (99%)
rename {IPProxyPool_py3/spider => spider}/HtmlPraser.py (83%)
rename {IPProxyPool_py3/spider => spider}/ProxyCrawl.py (99%)
rename {IPProxyPool_py2/spider => spider}/__init__.py (100%)
rename IPProxyPool_py2/start.bat => start.bat (100%)
rename {IPProxyPool_py2/test => test}/__init__.py (100%)
rename {IPProxyPool_py3/test => test}/test.py (100%)
rename {IPProxyPool_py3/test => test}/testIPAddress.py (100%)
rename {IPProxyPool_py3/test => test}/testIPType.py (94%)
rename {IPProxyPool_py3/test => test}/testbase64.py (100%)
rename {IPProxyPool_py3/test => test}/testhttpserver.py (95%)
rename {IPProxyPool_py3/test => test}/testlist.py (100%)
rename {IPProxyPool_py3/test => test}/testlxml.py (100%)
rename {IPProxyPool_py3/test => test}/testqueue.py (100%)
rename {IPProxyPool_py2/test => test}/testsql.py (100%)
rename {IPProxyPool_py3/util => util}/IPAddress.py (93%)
rename {IPProxyPool_py2/util => util}/__init__.py (100%)
create mode 100644 util/compatibility.py
rename {IPProxyPool_py2/util => util}/exception.py (100%)
rename {IPProxyPool_py3/util => util}/logger.py (100%)
rename {IPProxyPool_py3/validator => validator}/Validator.py (98%)
rename {IPProxyPool_py2/validator => validator}/__init__.py (100%)
diff --git a/IPProxyPool_py2/IPProxy.py b/IPProxy.py
similarity index 92%
rename from IPProxyPool_py2/IPProxy.py
rename to IPProxy.py
index 3eaa604..4b47040 100644
--- a/IPProxyPool_py2/IPProxy.py
+++ b/IPProxy.py
@@ -1,13 +1,11 @@
# coding:utf-8
+
from multiprocessing import Value, Queue, Process
from api.apiServer import start_api_server
-import sys
from db.DataStore import store_data
-from spider.ProxyCrawl import startProxyCrawl
-from validator.Validator import validator, getMyIP
-reload(sys)
-sys.setdefaultencoding('utf8')
+from validator.Validator import validator, getMyIP
+from spider.ProxyCrawl import startProxyCrawl
if __name__ == "__main__":
myip = getMyIP()
diff --git a/IPProxyPool_py2/config.py b/IPProxyPool_py2/config.py
deleted file mode 100644
index 8187501..0000000
--- a/IPProxyPool_py2/config.py
+++ /dev/null
@@ -1,193 +0,0 @@
-# coding:utf-8
-'''
-定义规则 urls:url列表
- type:解析方式,取值 regular(正则表达式),xpath(xpath解析),module(自定义第三方模块解析)
- patten:可以是正则表达式,可以是xpath语句不过要和上面的相对应
-'''
-from multiprocessing import Value
-import os
-import random
-
-'''
-ip,端口,类型(0高匿名,1透明),protocol(0 http,1 https),country(国家),area(省市),updatetime(更新时间)
- speed(连接速度)
-'''
-parserList = [
- {
- 'urls': ['http://www.66ip.cn/%s.html' % n for n in ['index'] + range(2, 12)],
- 'type': 'xpath',
- 'pattern': ".//*[@id='main']/div/div[1]/table/tr[position()>1]",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': './td[4]', 'protocol': ''}
- },
- {
- 'urls': ['http://www.66ip.cn/areaindex_%s/%s.html' % (m, n) for m in range(1, 35) for n in range(1, 10)],
- 'type': 'xpath',
- 'pattern': ".//*[@id='footer']/div/table/tr[position()>1]",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': './td[4]', 'protocol': ''}
- },
- {
- 'urls': ['http://cn-proxy.com/', 'http://cn-proxy.com/archives/218'],
- 'type': 'xpath',
- 'pattern': ".//table[@class='sortable']/tbody/tr",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': '', 'protocol': ''}
-
- },
- {
- 'urls': ['http://www.mimiip.com/gngao/%s' % n for n in range(1, 10)],
- 'type': 'xpath',
- 'pattern': ".//table[@class='list']/tr",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': '', 'protocol': ''}
-
- },
- {
- 'urls': ['https://proxy-list.org/english/index.php?p=%s' % n for n in range(1, 10)],
- 'type': 'module',
- 'moduleName': 'proxy_listPraser',
- 'pattern': 'Proxy\(.+\)',
- 'position': {'ip': 0, 'port': -1, 'type': -1, 'protocol': 2}
-
- },
- {
- 'urls': ['http://incloak.com/proxy-list/%s#list' % n for n in
- ([''] + ['?start=%s' % (64 * m) for m in range(1, 10)])],
- 'type': 'xpath',
- 'pattern': ".//table[@class='proxy__t']/tbody/tr",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': '', 'protocol': ''}
-
- },
- {
- 'urls': ['http://www.kuaidaili.com/proxylist/%s/' % n for n in range(1, 11)],
- 'type': 'xpath',
- 'pattern': ".//*[@id='index_free_list']/table/tbody/tr[position()>0]",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': './td[3]', 'protocol': './td[4]'}
- },
- {
- 'urls': ['http://www.kuaidaili.com/free/%s/%s/' % (m, n) for m in ['inha', 'intr', 'outha', 'outtr'] for n in
- range(1, 11)],
- 'type': 'xpath',
- 'pattern': ".//*[@id='list']/table/tbody/tr[position()>0]",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': './td[3]', 'protocol': './td[4]'}
- },
- {
- 'urls': ['http://www.cz88.net/proxy/%s' % m for m in
- ['index.shtml'] + ['http_%s.shtml' % n for n in range(2, 11)]],
- 'type': 'xpath',
- 'pattern': ".//*[@id='boxright']/div/ul/li[position()>1]",
- 'position': {'ip': './div[1]', 'port': './div[2]', 'type': './div[3]', 'protocol': ''}
-
- },
- {
- 'urls': ['http://www.ip181.com/daili/%s.html' % n for n in range(1, 11)],
- 'type': 'xpath',
- 'pattern': ".//div[@class='row']/div[3]/table/tbody/tr[position()>1]",
- 'position': {'ip': './td[1]', 'port': './td[2]', 'type': './td[3]', 'protocol': './td[4]'}
-
- },
- {
- 'urls': ['http://www.xicidaili.com/%s/%s' % (m, n) for m in ['nn', 'nt', 'wn', 'wt'] for n in range(1, 8)],
- 'type': 'xpath',
- 'pattern': ".//*[@id='ip_list']/tr[position()>1]",
- 'position': {'ip': './td[2]', 'port': './td[3]', 'type': './td[5]', 'protocol': './td[6]'}
- },
- {
- 'urls': ['http://www.cnproxy.com/proxy%s.html' % i for i in range(1, 11)],
- 'type': 'module',
- 'moduleName': 'CnproxyPraser',
- 'pattern': r'
(\d+\.\d+\.\d+\.\d+) | (HTTP|SOCKS4)\s*',
- 'position': {'ip': 0, 'port': 1, 'type': -1, 'protocol': 2}
- }
-]
-'''
-数据库的配置
-'''
-DB_CONFIG = {
-
- 'DB_CONNECT_TYPE': 'sqlalchemy', # 'pymongo'sqlalchemy
- # 'DB_CONNECT_STRING':'mongodb://localhost:27017/'
- 'DB_CONNECT_STRING': 'sqlite:///' + os.path.dirname(__file__) + '/data/proxy.db'
- # DB_CONNECT_STRING = 'mysql+mysqldb://root:root@localhost/proxy?charset=utf8'
-
-
-}
-CHINA_AREA = [u'河北', u'山东', u'辽宁', u'黑龙江', u'吉林'
- , u'甘肃', u'青海', u'河南', u'江苏', u'湖北', u'湖南',
- u'江西', u'浙江', u'广东', u'云南', u'福建',
- u'台湾', u'海南', u'山西', u'四川', u'陕西',
- u'贵州', u'安徽', u'重庆', u'北京', u'上海', u'天津', u'广西', u'内蒙', u'西藏', u'新疆', u'宁夏', u'香港', u'澳门']
-QQWRY_PATH = os.path.dirname(__file__) + "/data/qqwry.dat"
-
-THREADNUM = 5
-API_PORT = 8000
-'''
-爬虫爬取和检测ip的设置条件
-不需要检测ip是否已经存在,因为会定时清理
-'''
-UPDATE_TIME = 60 * 60 # 每一个小时检测一次是否有代理ip失效
-MINNUM = 40 # 当有效的ip值小于一个时 需要启动爬虫进行爬取
-MAXTIME = 3 * 24 * 60 # 当爬取存储开始一直使用的最大时间,如果超过这个时间,都删除
-
-TIMEOUT = 8 # socket延时
-
-'''
-反爬虫的设置
-'''
-'''
-重试次数
-'''
-RETRY_TIME = 3
-
-'''
-USER_AGENTS 随机头信息
-'''
-USER_AGENTS = [
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506)",
- "Mozilla/4.0 (compatible; MSIE 7.0; AOL 9.5; AOLBuild 4337.35; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
- "Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)",
- "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
- "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
- "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
- "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
- "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
- "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
- "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
- "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5",
- "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.8) Gecko Fedora/1.9.0.8-1.fc10 Kazehakase/0.5.6",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.20 (KHTML, like Gecko) Chrome/19.0.1036.7 Safari/535.20",
- "Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/2.0 Safari/536.11",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.71 Safari/537.1 LBBROWSER",
- "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E; LBBROWSER)",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.84 Safari/535.11 LBBROWSER",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
- "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; QQBrowser/7.0.3698.400)",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SV1; QQDownload 732; .NET4.0C; .NET4.0E; 360SE)",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 732; .NET4.0C; .NET4.0E)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)",
- "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1",
- "Mozilla/5.0 (iPad; U; CPU OS 4_2_1 like Mac OS X; zh-cn) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5",
- "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b13pre) Gecko/20110307 Firefox/4.0b13pre",
- "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0",
- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11",
- "Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10"
-]
-
-HEADER = {
- 'User-Agent': random.choice(USER_AGENTS),
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
- 'Accept-Language': 'en-US,en;q=0.5',
- 'Connection': 'keep-alive',
- 'Accept-Encoding': 'gzip, deflate',
-}
-
-TEST_URL = 'http://httpbin.org/ip' # 'http://ip.chinaz.com/getip.aspx'
-TEST_IP = 'http://httpbin.org/ip'
-TEST_HTTP_HEADER = 'http://httpbin.org/get'
-TEST_HTTPS_HEADER = 'https://httpbin.org/get'
-# #添加的检测关键字,修复测试的代理是否能真正的访问到目的网址
-# TEST_KEY = '站长工具'
-TEST_PROXY = 'http://www.stilllistener.com/checkpoint1/test11/'
\ No newline at end of file
diff --git a/IPProxyPool_py2/data/proxy.db b/IPProxyPool_py2/data/proxy.db
deleted file mode 100644
index 1fcbf7e27bbbdc803e2e6978440598fdc7d7c732..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 18432
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 |