Скребок: добавление задержки между итерациями - PullRequest
0 голосов
/ 22 февраля 2019

Для проекта очистки я хочу добавить задержку в 1 секунду между каждой итерацией скрипта.В других темах я уже читал, что задержка может быть включена с помощью функции «время».

Однако приведенный ниже код несмотря на то, что «время» по-прежнему обрабатывает несколько запросов в секунду, что простослишком быстро для скребка.Кто-нибудь знает, как правильно настроить задержку в 1 секунду?

import scrapy
import time

custom_settings = {
'ROBOTSTXT_OBEY': False,
'USER_AGENT': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"
}

class QuotesSpider(scrapy.Spider):
    name = 'spider1'
    allowed_domains = ['google.com']
    start_urls = ['https://www.google.com/search?q=Activision&biw=1280&bih=607&source=lnt&tbs=cdr%3A1%2Ccd_min%3A01%2F01%2F2004%2Ccd_max%3A12%2F31%2F2004&tbm=nws',
                  'https://www.google.com/search?q=Activision&biw=1280&bih=607&source=lnt&tbs=cdr%3A1%2Ccd_min%3A01%2F01%2F2005%2Ccd_max%3A12%2F31%2F2005&tbm=nws',
                  'https://www.google.com/search?q=Activision&biw=1280&bih=607&source=lnt&tbs=cdr%3A1%2Ccd_min%3A01%2F01%2F2006%2Ccd_max%3A12%2F31%2F2006&tbm=nws',
    ]

    def parse(self, response):
        item = {
            'results': response.css('#resultStats::text')[0].extract(),
            'url': response.url,
        }
        yield item
        time.sleep(1)

1 Ответ

0 голосов
/ 22 февраля 2019

Для этого есть специальная настройка, называемая задержкой загрузки

. Вы можете прочитать больше в документах для scrapy: https://doc.scrapy.org/en/latest/topics/settings.html#download-delay

...