Scrapy - Un framework dédié au crawl et à l'extraction de données en ligne
Si votre passion dans la vie, c’est de programmer des bots qui vont crawler des sites web pour en extraire le contenu afin d’alimenter vos propres bases données, vous serez surement heureux de découvrir Scrapy ?
Ce framework dédié au parcours de site et à l’extraction de données structurées dans les pages web peut être utilisé dans de nombreuses situations… Par exemple pour faire du monitoring, extraire des liens, ou encore récupérer du contenu éditorial…etc.
Scrapy est léger, facile à comprendre (ça utilise du Xpath et un système de règles), et fonctionne sous Windows, Linux, Mac, BSD…etc (c’est du Python). Voici ce que ça donne par exemple pour extraire les liens des derniers torrents mis en ligne sur Mininova.
class MininovaSpider(CrawlSpider): name = 'mininova.org' allowed_domains = ['mininova.org'] start_urls = ['http://www.mininova.org/today'] rules = [Rule(SgmlLinkExtractor(allow=['/tor/d+']), 'parse_torrent')] def parse_torrent(self, response): x = HtmlXPathSelector(response) torrent = TorrentItem() torrent['url'] = response.url torrent['name'] = x.select("//h1/text()").extract() torrent['description'] = x.select("//div[@id='description']").extract() torrent['size'] = x.select("//div[@id='info-left']/p[2]/text()[2]").extract() return torrent
Toute la doc et le soft sont disponibles sur le site officiel de Scrapy. Ca promet de longues heures d’amusement en perspective !