0

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

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

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

解决这个问题的最佳方法是什么?

4

1 回答 1

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'])
于 2013-10-23T17:42:03.503 回答