как увеличить etry / count в scrapy при получении ошибки 503 - PullRequest
0 голосов
/ 05 мая 2020
import scrapy


class QuotesSpider(scrapy.Spider):
    name = 'quotes'
    start_urls = [// i have 800 url here
    ]

    def parse(self, response):
        for quote in response.css('div.quote'):
            yield {
                'author': quote.xpath('span/small/text()').get(),
                'text': quote.css('span.text::text').get(),
            }

иногда сервер становится слишком занятым и не может ответить на все мои запросы (я получаю 503), как я могу увеличить количество повторных попыток для этих URL-адресов? (Скажите scrapy, чтобы он отправил этот запрос еще раз, пока не получит страницу)

1 Ответ

1 голос
/ 05 мая 2020
  • Вы можете просто установить для переменной RETRY_TIMES (в settings.py) количество раз, которое вы хотите повторить запрос
  • Если сервер блокирует ваши запросы, это, вероятно, означает, что вы перегружать его запросами, чего следует избегать. Установка DOWNLOAD_DELAY (время ожидания между запросами) и использование AUTOTHROTTLE_ENABLED = True (увеличение времени ожидания, если сервер отвечает медленно) может помочь снизить нагрузку на сервер. Вы также можете ограничить количество одновременных запросов с помощью CONCURRENT_REQUESTS.
...