У меня есть Scrapy Spider, который скрежет веб-сайта, и на этом веб-сайте требуется обновить токен, чтобы иметь доступ к ним.Ждите ответа на запрос - Python Scrapy
def get_ad(self, response):
temp_dict = AppextItem()
try:
Selector(response).xpath('//div[@class="messagebox"]').extract()[0]
print("Captcha found when scraping ID "+ response.meta['id'] + " LINK: "+response.meta['link'])
self.p_token = ''
return Request(url = url_, callback=self.get_p_token, method = "GET",priority=1, meta = response.meta)
except Exception:
print("Captcha was not found")
У меня есть get_p_token
метод, который обновляет маркер и присваивает self.p_token
get_p_token
вызывается, когда Защитный код найден, но проблема в том, другие запросы держать выполнение.
Я хочу, чтобы, если Captcha найден, не делайте следующий запрос до завершения выполнения get_p_token
.
У меня есть priority=1
, но это не поможет.
P.S:
На самом деле, что маркер передается каждому URL, так что именно поэтому я хочу, чтобы ждать, пока новый маркер не будет найден, а затем очистить остальную часть URL.
Это то, что я уже делаю. но я вызываю тот же метод 'get_ad' внутри метода' get_p_token' ... см. полный код http://pastebin.com/X6Q4ZFp2 – Umair