Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2010 15:21:57

Vin_Diesel
От:
Зарегистрирован: 2010-08-01
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

pyCurl multi

Приведите пример пожалуйста работы с pycurl.multi
Сделал по примеру с мана, но чет не работает(
Чекаю прокси, я так предполагаю он ответа ждет от них, хотя я timeout и connecttimeout установил
Без использования прокси все летает.

        while num_handles:
ret = mh.select(1.0)
if ret == -1: continue
while 1:
ret, num_handles = mh.perform()
if ret != pycurl.E_CALL_MULTI_PERFORM: break
Опции такие:
        ch.setopt(pycurl.URL, self.checkpage)
ch.setopt(pycurl.WRITEFUNCTION, body._write)
ch.setopt(pycurl.REFERER, self.checkpage)
ch.setopt(pycurl.USERAGENT, self.useragent)
ch.setopt(pycurl.FOLLOWLOCATION, 0)
ch.setopt(pycurl.TIMEOUT, self.timeout)
ch.setopt(pycurl.CONNECTTIMEOUT, self.timeout)
ch.setopt(pycurl.NOSIGNAL, 1)

ch.setopt(pycurl.PROXY, ip)
ch.setopt(pycurl.PROXYPORT, int(port))

if proxytype == 'http':
ch.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_HTTP)
elif proxytype == 'socks4':
ch.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS4)
elif proxytype == 'socks5':
ch.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
Вроде как пишут, что с соксами не дружит он, из-за них лагает.. Как быть???



Отредактировано (Авг. 5, 2010 16:17:21)

Офлайн

#2 Июнь 13, 2012 19:49:30

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

pyCurl multi

Проще использовать Grab:Spider - это обёртка с человеческим лицом к multicurl

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version