我想废弃一个关于一些问题和答案的3个深度的网站。它具有如下简单结构:
第3深度 - >包含实际数据(问题和答案)
/prob
+-> /prob/problemLists.html
+-> /prob/problem123456.html
我使用response.meta['depth']
作为条件编写了如下的Scrapy代码。
有没有更好的方法呢?
class DmzSpider(CrawlSpider):
rules = (
Rule(SgmlLinkExtractor(deny=('index\.htm',callback='parse_list'))),
)
def parse_list(self, response):
if response.meta['depth'] == 2:
# Scrap descriptions ...
return items
elif response.meta['depth'] ==3:
parse_item(response)
def parse_item(self, response):
# Parse items and save it according to prob_id...
return items
此外,我尝试了以下3个选项,其中没有人工作,而request_depth_max = 1摘要: 1.添加: 来自scrapy.conf导入设置 settings.overrides ['DEPTH_LIMIT'] = 2 蜘蛛文件 2.使用-s选项运行命令行: / usr / bin / scrapy crawl -s DEPTH_LIMIT = 2 mininova.org 3.添加到settings.py和scrapy.cfg: DEPTH_LIMIT = 2
如何配置为超过1?