Я пытаюсь выполнить сканирование списка сайтов с помощью scrapy
. Я попытался разместить список URL-адресов веб-сайта как start_urls
, но потом я обнаружил, что не могу позволить себе так много памяти. Есть ли способ установить scrapy
сканирование одного или двух сайтов за раз?
Вы можете попробовать использовать concurrent_requests = 1
, чтобы не перегружать данные
http://doc.scrapy.org/en/latest/topics/settings.html#concurrent-requests
Вы можете определить метод start_requests, который выполняет итерацию с помощью запросов к вашим URL-адресам. Это должно избегать накладных расходов при одновременном хранении всех исходных URL-адресов в памяти и является самым простым подходом к решению описанной вами проблемы.
Если по-прежнему много URL-адресов для хранения в памяти во время обхода, вы можете включить поддержку сохранения.
Если вы действительно хотите подавать только несколько URL-адресов, это возможно, зарегистрировавшись для сигнала spider_idle и в вашем обратном вызове функции добавьте следующие несколько URL-адресов и поднимите DontCloseSpider.