我对 Scrapy 相当陌生,并且正在努力想出一种方法来解析每个域级别的信息。所以希望有人能指出我正确的方向吗?
目前我正在使用该框架扫描我们网站的链接列表,然后通过 CSV 选项导出它们。这在一定程度上可以正常工作,但不是检索单个页面和相应的链接,我想按域对结果进行分组。例如:
example.com, [link1,link2,link3,link4]
解决这个问题的最佳方法是什么?
编写自定义管道,http://doc.scrapy.org/en/latest/topics/item-pipeline.html。
它看起来像这样:
class LinksFromDomain(object):
def __init__(self):
self._spider_to_domains = {}
def open_spider(self, spider):
self._spider_to_domains[spider] = {}
def close_spider(self, spider):
# write out a csv file with all the items in some format.
self._spider_to_domains[spider] = {}
def process_item(self, item, spider):
domains_dict = self._spider_to_domains[spider]
if item['domain'] not in domains_dict:
domains_dict[item['domain']] = []
domains_dict[item['domain']].extend(item['links'])