Цикл на скрапе FormRequest, но создан только один элемент - PullRequest
0 голосов
/ 06 декабря 2018

Итак, я попытался выполнить цикл запроса формы, который вызывает мою функцию, которая создает, заполняет и возвращает элемент, только pb: выполняется только один и только один элемент, независимо от того, сколько раз он повторял, и я не могу понятьпочему?

def access_data(self, res):
#receive all ID and request the infos
    res_json = (res.body).decode("utf-8")
    res_json = json.loads(res_json)
    for a in res_json['data']:
        logging.warning(a['id'])
        req = FormRequest(
            url='https://my_url',
            cookies={my_cookies},
            method='POST',
            callback=self.fill_details,
            formdata={'valeur': str(a['id'])},
            headers={'X-Requested-With': 'XMLHttpRequest'}
        )
        yield req

def fill_details(self, res):
    logging.warning("annonce")
    item = MyItem()
    item['html'] = res.xpath('//body//text()')
    item['existe'] = True
    item['ip_proxy'] = None
    item['launch_time'] = str(mySpider.init_time)
    yield item

Чтобы быть уверенным, что все ясно: когда я запускаю это, журнал "annonce" печатается только один раз, в то время как моя регистрация ['id'] в моем цикле запроса печатаетсямного, и я не могу найти способ исправить это

1 Ответ

0 голосов
/ 06 декабря 2018

Я нашел способ!Если у кого-то есть один и тот же pb: мой URL-адрес всегда один и тот же (только с изменением формы), то фильтр очистки принимает контроль и уничтожает дубликаты.Активируйте dont_filter в true в форме запроса, чтобы он заработал

...