Показать сообщение отдельно

  #5  
Старый 15.09.2009, 14:09
Ardling
Новичок
Регистрация: 30.08.2009
Сообщений: 19
С нами: 8788294

Репутация: 7
По умолчанию

В итоге, после долгих блужданий по форуму так и не нашел нормального чекера на python и решил сам написать что-то подобное. Возможно кому-то это пригодится, ибо написанное на питоне очень удобно подстраивать под свои конкретные нужды.

PHP код:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import socket
import urllib2
import threading

openUrl 
'http://2ip.ru/'
proxiesFileName 'proxies-big'
outFileName 'goodproxies'
timeout 5
maxProxyNum 
100

class fileLister:
    
def __init__(selffileName):
        
with open(fileName'r') as file:
            
self.fileList file.readlines()

    
def getProxyAdress(self):
        return {
'http''http://'+self.fileList.pop().strip()}
    
    
def isNotEmpty(self):
        if 
len(self.fileList) == 0:
            return 
False
        
else: return True

def checkThread
():
    while 
proxyFile.isNotEmpty():
        
checkProxy(proxyFile.getProxyAdress())

def checkProxy(proxyAdress):
    
proxyHandler urllib2.ProxyHandler(proxyAdress)
    
opener urllib2.build_opener(proxyHandler)
    
urllib2.install_opener(opener)
    
    try: 
urllib2.urlopen(openUrl)
    
except urllib2.URLErroreproxyErr(proxyAdresse)
    else: 
goodProxy(proxyAdress)

def proxyErr(proxyAdresserror):
    
proxyName proxyAdress.values()[0][7:]
    
with printLock:
        print 
proxyNameerror.errnoerror.reason

def goodProxy
(proxyAdress):
    
proxyName proxyAdress.values()[0][7:]
    
with printLock:
        print 
proxyName"Работает"
    
with open(outFileName'a') as file:
        print>>
fileproxyName

def main
():
    global 
printLock
    printLock 
threading.Lock()

    
socket.setdefaulttimeout(timeout)
    
    global 
proxyFile
    proxyFile 
fileLister(proxiesFileName)
    
    for 
i in xrange(maxProxyNum):
        
threading.Thread(target=checkThread).start()

if 
__name__ == '__main__':
    
main() 
Хотелось бы услышать что вы о моем тварении думаете, желательно разумную критику. Интересно было бы услышать чего еще полезного можно к этому скрипту прикрутить.
 
Ответить с цитированием