Я хотел бы просканировать определенный URL-адрес, который при каждом вызове возвращает случайный ответ. Приведенный ниже код возвращает то, что я хочу, но я хотел бы запускать его в течение длительного времени, чтобы я мог использовать данные для приложения NLP. Этот код запускается только один раз с scrapy crawl the, хотя я ожидаю, что он будет запускаться больше из-за последнего оператора if.
Команда запуска Unix - это то, что я ищу? Я попробовал, но это показалось мне немного медленным. Если бы мне пришлось использовать команду запуска, было бы хорошей практикой открывать много вкладок в терминале и запускать ту же команду с префиксом запуска, или это просто снижает скорость?
class TheSpider(scrapy.Spider):
name = 'the'
allowed_domains = ['https://websiteiwannacrawl.com']
start_urls = ['https://websiteiwannacrawl.com']
def parse(self, response):
info = {}
info['text'] = response.css('.pd-text').extract()
yield info
next_page = 'https://websiteiwannacrawl.com'
if next_page is not None:
yield scrapy.Request(next_page, callback=self.parse)






dont_filter
indicates that this request should not be filtered by the scheduler. This is used when you want to perform an identical request multiple times, to ignore the duplicates filter. Use it with care, or you will get into crawling loops. Default to False
Вы должны добавить это в свой запрос
yield scrapy.Request(next_page, dont_filter=True)
это не к вашему вопросу, но для callback=self.parse прочтите Метод синтаксического анализа