Форум сайта python.su
Приведите пример пожалуйста работы с 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)
Офлайн
Проще использовать Grab:Spider - это обёртка с человеческим лицом к multicurl
Офлайн