Skip to content

Commit 435c74d

Browse files
committed
2017年8月31日 DEBUG
1 parent 14dc785 commit 435c74d

File tree

4 files changed

+24
-13
lines changed

4 files changed

+24
-13
lines changed

Config.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
DBName = "PROXIES.db" # 数据库名称
22
TabelName = "IPPORT" # 表
33
Column1 = "IP_PORT" # 列1
4-
TestTimeOut = 10 # 检测IP可用性设置的超时
4+
5+
TestTimeOut = 10 # 检测IP可用性设置的超时,
6+
# 对IP质量要求不高,就把值设的高一点儿。这样可用IP就会增多
57
MaxThreads = 64 # 最大线程数,依据电脑性能修改,性能好的电脑可以设置高一点
8+
# 最好设置为2的n次方,别问我为什么,我也不知道,这是玄学
9+
610
TestUrl = "https://www.baidu.com/" # 用以检测的网站
711

812
# 头部代理S

GetIP.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ def GetPageContent(tar_url):
3131

3232

3333
def GetIP():
34+
global d
35+
global ip_list
3436
thread_list = []
3537
ips = []
3638

@@ -50,17 +52,21 @@ def GetIP():
5052

5153
for item in d.keys():
5254
ips.append(item)
55+
d.clear()
5356
ProxiesDataBase.AddItems(ips)
5457

5558

5659
def RefreshDB():
60+
global d
61+
global ip_list
5762
ip_list = ProxiesDataBase.GetItems()
5863
thread_list = []
5964
ips = []
6065

61-
if not ip_list:
66+
if ip_list.__len__() < 1:
6267
return
6368

69+
6470
for index in range(0, Config.MaxThreads):
6571
thread_list.append(Thread(target=VerifyIp))
6672
for item in thread_list:
@@ -69,14 +75,18 @@ def RefreshDB():
6975
item.join()
7076

7177
ProxiesDataBase.ClearItems()
78+
7279
for item in d.keys():
7380
ips.append(item)
81+
d.clear()
7482
ProxiesDataBase.AddItems(ips)
7583

7684

7785
def VerifyIp():
86+
global d
7887
while ip_list:
7988
tmp_ip_port = ip_list.pop(0)
89+
print("verify ip: {}".format(tmp_ip_port))
8090
proxies = {"http": "http://{}".format(tmp_ip_port), "https": "https://{}".format(tmp_ip_port)}
8191
try:
8292
url_content = get(Config.TestUrl,

ProxiesDataBase.py

+7-10
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
# table IPPORT
22
# ip_port TEXT NOT NULL
3-
import random
43
import sqlite3
5-
from threading import Thread
64
import traceback
5+
76
import Config
8-
import GetIP
97

108

119
def InitDB():
1210
db_conn = sqlite3.connect(Config.DBName)
1311
try:
1412
db_conn.execute(
15-
"""CREATE TABLE IF NOT EXISTS {} (IP_PORT TEXT NOT NULL PRIMARY KEY);""".format(Config.TabelName))
13+
"""CREATE TABLE IF NOT EXISTS {} (IP_PORT TEXT NOT NULL);""".format(Config.TabelName))
1614
db_conn.commit()
1715
return True
1816
except BaseException as e:
@@ -34,15 +32,18 @@ def AddItem(ip_port):
3432
traceback.print_exc()
3533
db_conn.close()
3634

35+
3736
def AddItems(ip_list):
37+
if ip_list.__len__() < 1:
38+
return
39+
3840
sql_str = """INSERT INTO IPPORT VALUES """
3941

4042
for item in ip_list:
4143
sql_str += ("('{}'),".format(item))
4244
index = sql_str.__len__()
4345
sql_str = sql_str[0:index - 1]
4446
sql_str += ";"
45-
4647
db_conn = sqlite3.connect(Config.DBName)
4748
try:
4849
db_conn.execute(sql_str)
@@ -83,14 +84,10 @@ def GetItems():
8384
db_conn = sqlite3.connect(Config.DBName)
8485
db_cur = db_conn.cursor()
8586
try:
86-
tmp = db_cur.execute("""SELECT * FROM {};""".format(Config.TabelName)).fetchall()
87-
for item in tmp:
87+
for item in db_cur.execute("""SELECT * FROM {};""".format(Config.TabelName)).fetchall():
8888
ip_list.append(item[0])
8989
except BaseException as e:
9090
traceback.print_exc()
9191
finally:
9292
db_conn.close()
9393
return ip_list
94-
95-
96-

demo.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sqlite3
2-
2+
import GetIP
33
import Config
44
import ProxiesDataBase
55
import Util

0 commit comments

Comments
 (0)