0

この例に似たクロール スパイダーがあるとします。

class MySpider(CrawlSpider):
    name = 'example.com'
    allowed_domains = ['example.com']
    start_urls = ['http://www.example.com']

    rules = (
        # Extract links matching 'category.php' (but not matching 'subsection.php')
        # and follow links from them (since no callback means follow=True by default).
        Rule(SgmlLinkExtractor(allow=('category\.php', ), deny=('subsection\.php', ))),

        # Extract links matching 'item.php' and parse them with the spider's method parse_item
        Rule(SgmlLinkExtractor(allow=('item\.php', )), callback='parse_item'),
    )

    def parse_item(self, response):
        self.log('Hi, this is an item page! %s' % response.url)

        hxs = HtmlXPathSelector(response)
        item = Item()
        item['id'] = hxs.select('//td[@id="item_id"]/text()').re(r'ID: (\d+)')
        item['name'] = hxs.select('//td[@id="item_name"]/text()').extract()
        item['description'] = hxs.select('//td[@id="item_description"]/text()').extract()
        return item

各ページの ID の合計や、解析されたすべてのページの説明の平均文字数などの情報を取得したいとします。どうすればいいですか?

また、特定のカテゴリの平均を取得するにはどうすればよいですか?

4

1 に答える 1

3

Scrapy の統計コレクターを使用して、この種の情報を作成したり、必要なデータを収集したりできます。カテゴリごとの統計については、カテゴリごとの統計キーを使用できます。

クロール中に収集されたすべての統計のクイック ダンプについてはSTATS_DUMP = Truesettings.py.

Redis ( redis-py経由) も統計収集の優れたオプションです。

于 2011-03-27T09:11:01.367 に答える