我需要向 allowed_domains 添加更多域,因此我没有收到“已过滤的异地请求”。
我的应用程序获取从数据库获取的网址,因此我无法手动添加它们。
我试图覆盖蜘蛛init
像这样
def __init__(self):
super( CrawlSpider, self ).__init__()
self.start_urls = []
for destination in Phpbb.objects.filter(disable=False):
self.start_urls.append(destination.forum_link)
self.allowed_domains.append(destination.link)
start_urls 很好,这是我要解决的第一个问题。但allow_domains 没有影响。
我需要更改一些配置才能禁用域检查?我不想要这个,因为我只想要数据库中的那些,但它现在可以帮助我禁用域检查。
thanks!!
-
'allowed_domains'
参数是可选的。首先,您可以跳过它以禁用域过滤
-
In scrapy/contrib/spidermiddleware/offsite.py
您可以为您的自定义域过滤功能覆盖此功能:
def get_host_regex(self, spider):
"""Override this method to implement a different offsite policy"""
allowed_domains = getattr(spider, 'allowed_domains', None)
if not allowed_domains:
return re.compile('') # allow all by default
domains = [d.replace('.', r'\.') for d in allowed_domains]
regex = r'^(.*\.)?(%s)$' % '|'.join(domains)
return re.compile(regex)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)