Disons que j'ai une araignée crawl similaire à cet exemple: de scrapy.contrib.spiders importer CrawlSpider, la règle de SgmlLinkExtractor import scrapy.contrib.linkextractors.sgml de scrapy. sélecteur importation HtmlXPathSelector d'importation scrapy.item articleScrapy CrawlSpider post-traitement: Trouver un moyen
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
Disons que je voulais obtenir des informations comme la somme des ID de chacune des pages, ou le nombre moyen de caractères dans la description sur l'ensemble des pages analysées. Comment je le ferais?
En outre, comment pourrais-je obtenir des moyennes pour une catégorie particulière?
Pour une raison quelconque, je ne peux pas obtenir les instructions d'importation dans le bloc de code. – Muhd