2016-03-17 5 views
0

Я бы хотел, чтобы мой Паук проползал сайт 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) 
+1

Что произойдет, если вы укажете свои настройки в файле 'settings.py'? просто для тестирования, я думаю, что 'custom_settings' должен быть атрибутом класса, пожалуйста, подтвердите его прямо на' settings.py'. – eLRuLL

+0

Вы хотите установить custom_settings на settings.py? Я думаю, что мои custom_settings уже читаются, когда начинается мой паук. – Pixel

+0

Вы правы! У меня изменилось место self.custom_settings, и теперь все в порядке. – Pixel

ответ

0

custom_settings необходимо определить как атрибут класса, чтобы он заменил фактические настройки на settings.py.

+0

Знаете ли вы, почему паук не продолжает сканирование после первой страницы? Гусеница как остановка с ограничением DEPH: 0 – Pixel