Scrapy - 如何解析每个域级别的信息

时间:2013-10-22 15:09:01

标签: python scrapy

我对Scrapy相当陌生,并努力想出一种解析每个域级信息的方法。所以希望有人能指出我正确的方向?

目前我正在使用该框架扫描我们网站的列表以获取链接,然后通过CSV选项导出它们。这在某一点上工作正常,但不是检索单个页面和相应的链接,我想基于域对结果进行分组。 例如:

example.com, [link1,link2,link3,link4]

最好的解决方法是什么?

1 个答案:

答案 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'])