Я бы хотел, чтобы мой Паук проползал сайт start_urls
, прежде чем более глубоко изучить веб-сайты.Scrapy DEPTH_PRIORITY не работает
Целью искателя является поиск доменов с истекшим сроком действия.
Для примера я создаю страницу с 500 URL (450 expired & 50 сайтов actif), искатель должен вставить в базу данных каждый URL-адрес перед тем, как следовать.
На самом деле гусеничный ход следит за первым веб-сайтом вживую и перестает сканировать сайт start_urls
.
Это моя конфигурация:
self.custom_settings = {
'RETRY_ENABLED': False,
'DEPTH_LIMIT' : 0,
'DEPTH_PRIORITY' : 1,
'CONCURRENT_REQUESTS_PER_DOMAIN' : 64,
'CONCURRENT_REQUESTS' : 128,
'REACTOR_THREADPOOL_MAXSIZE' : 30,
}
Окружение:
SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue'
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'
LOG_LEVEL = 'INFO'
DUPEFILTER_CLASS = 'dirbot.custom_filters.BLOOMDupeFilter'
Crawler:
rules = (
Rule(LxmlLinkExtractor(allow=('.com', '.fr', '.net', '.org', '.info', '.casino', '.co'),
deny=('facebook', 'amazon', 'wordpress', 'blogspot', 'free')),
callback='parse_obj',
process_request='add_errback',
follow=True),
)
def add_errback(self, request):
return request.replace(errback=self.errback_httpbin)
def errback_httpbin(self, failure):
if failure.check(DNSLookupError):
request = failure.request
ext = tldextract.extract(request.url)
domain = ext.registered_domain
if domain != '' :
self.checkDomain(domain)
Что произойдет, если вы укажете свои настройки в файле 'settings.py'? просто для тестирования, я думаю, что 'custom_settings' должен быть атрибутом класса, пожалуйста, подтвердите его прямо на' settings.py'. – eLRuLL
Вы хотите установить custom_settings на settings.py? Я думаю, что мои custom_settings уже читаются, когда начинается мой паук. – Pixel
Вы правы! У меня изменилось место self.custom_settings, и теперь все в порядке. – Pixel