首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刮伤的DEPTH_PRIORITY不起作用

刮伤的DEPTH_PRIORITY不起作用
EN

Stack Overflow用户
提问于 2016-03-17 14:52:49
回答 1查看 821关注 0票数 1

我想我的蜘蛛爬虫的start_urls网站完全之前跟踪更深入的网站。

爬虫的目标是找到过期的域。

举个例子,我创建了一个包含500个url (450个过期和50个actif网站)的页面,爬虫必须在后面的每个url中插入一个url。

实际上,爬虫跟随第一个网站活着,停止爬行start_urls网站。

这是我的配置:

代码语言:javascript
复制
self.custom_settings = {
    'RETRY_ENABLED': False,
    'DEPTH_LIMIT' : 0,
    'DEPTH_PRIORITY' : 1,
    'CONCURRENT_REQUESTS_PER_DOMAIN' : 64,
    'CONCURRENT_REQUESTS' : 128,
    'REACTOR_THREADPOOL_MAXSIZE' : 30,
}

设置:

代码语言:javascript
复制
SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue'
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'
LOG_LEVEL = 'INFO'
DUPEFILTER_CLASS = 'dirbot.custom_filters.BLOOMDupeFilter'

Crawler :

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2016-03-17 15:19:40

需要将custom_settings定义为类属性,以替换settings.py上的实际设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36064103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档