Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

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 !


Les articles du moment