Уведомления

Группа в Telegram: @pythonsu

#1 Март 28, 2016 13:17:27

Standard_user
Зарегистрирован: 2016-03-28
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab фреймворк, 100% нагрузка CPU

Хочу сделать простой прокси чекер на потоках:

from grab import Grab
import threading
import random
import time
def test_proxy(proxy):
    grab = Grab(url = 'https://api.ipify.org?format=json', connect_timeout = 10, proxy = proxy, proxy_type = 'socks5')
    try:
        grab.request()     
        print(grab.response.unicode_body())
    except Exception as e:
        print(e)        
        
proxyList = Grab().go('http://api.best-proxies.ru/feeds/proxylist.txt?key=01YvxflHzjs4eyNvDhtrdeoU&type=socks5&limit=0').unicode_body().split('\r\n')
for i in range(50):
    threading.Thread(target= test_proxy, args= [random.choice(proxyList)]).start()
    
while threading.active_count() > 1:
    time.sleep(1)
Все работает, если прокси - socks5. Если http(s) - тоже работает, но грузит проц на 100%, код тот же самый:
from grab import Grab
import threading
import random
import time
def test_proxy(proxy):
    grab = Grab(url = 'https://api.ipify.org?format=json', connect_timeout = 10, proxy = proxy, proxy_type = 'http')
    try:
        grab.request()     
        print(grab.response.unicode_body())
    except Exception as e:
        print(e)        
        
proxyList = Grab().go('http://api.best-proxies.ru/feeds/proxylist.txt?key=01YvxflHzjs4eyNvDhtrdeoU&type=https&limit=0').unicode_body().split('\r\n')
for i in range(50):
    threading.Thread(target= test_proxy, args= [random.choice(proxyList)]).start()
    
while threading.active_count() > 1:
    time.sleep(1)
Буду сильно благодарен за любой совет или намёк, как пофиксить это дело, уже некоторый день мучаюсь. Тестил на WinXP, Win7, Win 8.1, на разных Python версиях (3.4, 3.4.3, 3.5.1), пробовал установить разные PyCurl версии, проблема та же самая.
Питон изучаю недавно.

Отредактировано Standard_user (Март 29, 2016 00:29:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version