evgenyl 13.08.2009 16:04

PythonИщем прокси

Ещё один пример на питоне, скрипт ищет рабочие прокси и тестирует их на скорость.

Исходный код



в начале файла настройки

PROXY_LIST - страница с проксями в виде xxx.xxx.xxx.xxx:xxxx

TEST_URL - что загружать

CHECKERS - кол во поисковых потоков

TEST_COUNT - сколько делать запросов через прокси



 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/python



PROXY_LIST="http://webanet.ucoz.ru/publ/23-1"

TEST_URL="http://img0.gmodules.com/ig/images/gmaillogo.gif"

CHECKERS=16

TEST_COUNT=10



import urllib2, re, Queue, threading, socket, datetime



r_proxy = re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}')

proxy_list = r_proxy.findall( urllib2.urlopen(PROXY_LIST).read() )

print 'Finding %s proxies' % len(proxy_list)



socket.setdefaulttimeout(2)



def proxy_tester():

while True:

proxy = q.get()

proxy_handler = urllib2.ProxyHandler( { 'http': 'http://%s/' % proxy } )

opener = urllib2.build_opener(proxy_handler)

try:

timings=


for i in range(TEST_COUNT):

time = datetime.datetime.now()

s = opener.open(TEST_URL).read()

time = datetime.datetime.now()-time

timings.append(len(s)/1024.0/ (time.seconds+time.microseconds/1000000.0))

speed = sum(timings)/len(timings)

if speed>2: print 'found', proxy, speed

except Exception,e:

pass

del proxy_handler, opener

q.task_done()



q = Queue.Queue()



for i in range(CHECKERS):

t = threading.Thread(target=proxy_tester)

t.setDaemon(True)

t.start()



for i in proxy_list:

q.put(i)



q.join()



Тэги: proxy python
+ 13 -
Похожие Поделиться

evgenyl 13.08.2009 16:11 #
Ждите в следующием выпуске тестируем производительность сети, pps и ширину канала :)
cyrus 13.08.2009 16:16 #
+
Надеюсь Вы продолжите выкладывать сюда ещё много таких примеров.
evgenyl 13.08.2009 16:19 #
Да как будет свободная минутка постараюсь, что нить обще востребованное постить.
squ1b3r 13.08.2009 17:44 #
Спасибо тебе Друг!
exelens 13.08.2009 20:10 #
Как этим пользоваться?
Я просто запускаю?
Дальше?
evgenyl 13.08.2009 23:06 #
знаете не стоит запусукать вме что я пишу, иногда это такой бред ...... ;)
evgenyl 13.08.2009 23:07 #
сори выпил немного :)))))))))))))))
Username 14.08.2009 00:04 #
че-то я конкретно сомневаюсь в работоспособности и выполнения заявленных функций этим скриптом ;)
evgenyl 14.08.2009 10:29 #
проверь, будут проблемы/ошибки исправим :)
mirivlad 14.08.2009 08:10 #
Два вопроса
1. после адреса - идет я так понял скорость загрузки тестового урл?
2. по ctrl+c не выходит. Так и должно бытЬ?
evgenyl 14.08.2009 10:30 #
да скорость, хочу заметить т.к. тестирование идет в 16 потоков у вас может и не хватить канала получить максимальную скорость
evgenyl 14.08.2009 10:37 #
2) да не выходит, эт потому что основной поток исполнения добавляется в конец очереди и начнет выполнятся только когда вся очередь отработает.
DrThompson 14.08.2009 10:46 #
Зачем это?