我对Scrapy相当陌生,并努力想出一种解析每个域级信息的方法。所以希望有人能指出我正确的方向?
目前我正在使用该框架扫描我们网站的列表以获取链接,然后通过CSV选项导出它们。这在某一点上工作正常,但不是检索单个页面和相应的链接,我想基于域对结果进行分组。 例如:
example.com, [link1,link2,link3,link4]
最好的解决方法是什么?
答案 0 :(得分:0)
编写自定义管道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'])