Как генерировать Grab с собственными proxy?

Есть задача реализовать работу асинхронного Grab::Spider через proxy.
Сейчас это выглядит следующим образом
spider.py
from grab import Grab
from grab.spider import Spider, Task

class LinkSpider(Spider):

   def __init__(self, extrapage, homepage):
        super(LinkSpider, self).__init__()
        self.initial_urls = ['some_url']
        self.homepage = homepage
        self.matches = []
        self.OUdict = {}
   def task_initial(self, grab, task):
        do_smthng
        link = 'https://api.ipify.org/?format=json'
        g = Grab(url=link)
        yield Task('parser', grab=g, link=link)
   def task_parser(self,grab,task):
        response = grab.response.body
        print(response)

В таком случае все выполняется и в консоль принтуется мй текущий ip.
Теперь добавляем proxy-setup
from grab import Grab
from grab.spider import Spider, Task

class LinkSpider(Spider):

   def __init__(self, extrapage, homepage):
        super(LinkSpider, self).__init__()
        self.initial_urls = ['some_url']
        self.homepage = homepage
        self.matches = []
        self.OUdict = {}
   def task_initial(self, grab, task):
        do_smthng
        link = 'https://api.ipify.org/?format=json'
        g = Grab()
        g.setup(url=link, proxy="120.52.72.47:80", proxy_type="http")
        yield Task('parser', grab=g, link=link)
   def task_parser(self,grab,task):
        response = grab.response.body
        print(response)

Прокси я брал с разных сайтов , например :

Так вот в случае такого запуска вызывается первая таска, а во вторую просто не попаедает(тоесть в консоли я не вижу ни ошибок, ни ip-адресса, через пару секунд программа заканчивается.
Подскажите , может я что то упустил и где то надо было сделать глобальную настройку, делал как написано в доках, может есть другой способ? может можно сделать global setup для всех grab обьектов?

элементарно ватсон!
Проблема была в нерабочем прокси, взял рабочую - все заработало.
  • Вопрос задан
  • 1844 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы