Избегайте неправильных страниц Scrapy - PullRequest
0 голосов
/ 22 октября 2018

Я уже писал на прошлой неделе, мой бот всегда блокируется на странице 321.Я изменил настройки Scrapy, но заметил, что страницы между 321 и концом, похоже, не содержат элементов.

Я хотел бы знать, как пропустить страницы, приводящие к ошибкам.Я попробовал это:

    next_pages = response.xpath("//div[@class='pgLightPrevNext']/a/@href").extract() #essai pour accéder au contenu des pages suivantes
    for next in next_pages:
        absolute_url = self.base_url + next
        try:
            yield scrapy.Request(absolute_url, callback=self.parse_dir_contents)
        except:
            pass

Но безрезультатно.Как я могу пропустить эти страницы?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

В следующей функции, где вы выбираете данные, проверьте, если ответ == 200. Если ответ не равен 200, вы можете повторить этот URL, используя другую функцию, используя переменную retry при определенном пределе.Если предел превышен, перейдите к следующему URL продукта.

try:
        if response.status == 404:
            self.append(self.bad_log_file, response.url)
            self.append(self.fourohfour, response.url)

        elif response.status == 200:
            self.append(self.ok_log_file, response.url)
        else:
            self.append(self.bad_log_file, response.url)

    except Exception, e:
        self.log('[eccezione] : %s' % e)
        pass
0 голосов
/ 23 октября 2018

Вы можете return, если количество элементов, собранных для страницы, равно 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...