Entrez vos identifiants

x
OU
Vous avez oublié votre mot de passe ?
Utilisateur wiki : vous n'aviez pas d'email ?

Korben - Site d'actualité geek et tech

Go Top


Scrapy – Un framework dédié au crawl et à l’extraction de données en ligne

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 !


Facebook Twitter Email Copier Url

16 Responses to “Scrapy – Un framework dédié au crawl et à l’extraction de données en ligne”

  1. Soullivaneuh dit :

    Dans le meme genre, Goutte par le le créateur de Symfony: https://github.com/fabpot/Goutte

    A tester ! :)

  2. Un scraper en PHP? C’te troll.

  3. fdsfdsfds dit :

    Un crawler en php?? Non mais allo koi !

  4. Soullivaneuh dit :

    En quoi cela serait un troll ?

    Faut arreter avec le PHP Trololo, le PHP est un langage puissant, a condition de ne pas coder comme un porc…

  5. osef dit :

    C’est comme si t’es un codeur et t’a pas d’ordi, non mais allo quoi

  6. Daikyoka dit :

    Et puis franchement pour avoir vu des tests Python-PHP, la conso en mémoire du premier bonjour !

  7. Thomas Fortier dit :

    Dans le même genre en Python, il y a BeautifulSoup, puissant et agile.

    http://www.crummy.com/software/BeautifulSoup/

  8. Nassim dit :

    Les tests dont tu parles sont probablement le genre de banchmarks minables qu’on peut trouver sur le blog de Mme Michu.
    Un banchmark Python avec un mec qui utilises range au lieu de xrange par exemple ça te donnera toujours un résultat ridicule en consommation mémoire (même si le script reste plus rapide qu’un script PHP car Python est plus rapide que PHP).
    De même, Python est thread-safe, ce qui dans le cas d’un crawler est plus avantageux que de passer via un mécanisme de fork qui lui est plus gourmand en mémoire.

  9. Hart dit :

    Je plussoie.

    Un bon benchmark implique de connaitre les particularités, défauts et avantages de chaque système testé, puisque les utilisateurs de ces différents systèmes auront des habitudes différentes, adaptées à ces particularités.

  10. Hart dit :

    C’est “JavaScript”.

    Bon après perso j’ai tendance à laisser tomber la deuxième majuscule, mais en composé comme ça, désolé, ça me chiffonne.

  11. Tybbow dit :

    Mouais… Possibilité de le faire en VB ce genre de truc.. Et je pense que ça sera beaucoup plus simple..

  12. lolololo dit :

    je suppose que tu voulais dire “exploreur” lol parce que pour le coup tu nous as remis une couche d’anglais :D

  13. Julien dit :

    Jamais testé mais on m’a dit du bien de PhantomJs : http://phantomjs.org/

  14. Balthazar Rouberol dit :

    BeautifulSoup te permet de parser du HTML/XML. Scrapy te fournit un HTML parser built-in, mais permet d’utiliser BeautifulSoup, lxml, et même le HTMLParser built-in Python.

    La grande différence entre BeautifulSoup et Scrapy, c’est que Scrapy est un framework de *crawl* et de scrape, te permettant d’indiquer quels sont les liens à suivre/ à éviter (avec des regex) pendant le crawl, et de définir quels sont les informations à récupérer, pendant le scrape.

  15. Balthazar Rouberol dit :

    Au passage @Korben, tu peux remplacer ton “return torrent”, par un “yield torrent”.

    Ça te permet de ne retourner qu’un générateur et de ne pas stocker une liste entière à chaque fois.

    Dans ce cas précis, tu ne sentiras pas la différence, mais elle peut devenir important si tu renvoies plusieurs items par page par exemple.

    My 2 cents :)

  16. MasterBOX dit :

    Beurk du VB.

    En plus en quoi ce serait plus simple ??? Là tu as un framework vraiment dédié à ce genre de chose, c’est imbattable.
    J’aurai préféré à titre perso du Perl, mais peu importe le langage si ça fait le job !

A gagner – Des codes abonnement pour F-Secure Key

bigstock

Aujourd'hui je vous propose de gagner des codes pour des abonnements d'un an pour Key, le gestionnaire de mot de passe de F-Secure.

Si vous êtes adeptes des ouvertures de comptes en ligne à tout-va, ce petit soft peut vous être d'une grande utilité, voir pour ceux qui décideraient de renforcer tous leurs mots de passe en cours d'utilisation.

Avec Key vous pouvez stocker tous vos mots de passe et y accéder facilement, sur n'importe quel appareils, desktop ou mobile et même générer des mots de passe renforcés et uniques chaque fois que vous en avez besoin.

Pratique pour ceux qui ont tendance à aller au plus vite en mettant la date de naissance du dernier né ;)

Pour jouer ça se passe tranquillou avec Kontest:

Toutes les fonctionnalités de Key sont listées ici

Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :

Twitter Facebook Google Plus Linkedin email
Rejoignez les 57010 korbenautes
et réveillez le bidouilleur qui est en vous
abonnez-vous en savoir plus
"Vous aimez bidouiller ?" Oui j'adore l'informatique et la technologie
Suivez Korben Un jour ça vous sauvera la vie.. Ou celle d'un(e) ami(e)
  • Rejoignez les 57010 bidouilleurs de la grande famille des Korbenautes
    «Je considère que votre email est aussi important que le mien.»
    Korben
  • Les Derniers Articles du Blog

  • Inscrivez vous aux bon plans

  •  
  • Site hébergé par
    Agarik Sponsor Korben
  • DANS TON CHAT (BASHFR)

    <Quentin> Tu sais j'ai bien réfléchi, je viens de faire un basket et j'ai eu une idée pour ma voisine, comme dans les films!
    <Bob> Explique?
    <Quentin> Tu vois si elle faisait du basket comme moi, tous les soirs j'irais la chercher, d'abord pour faire connaissance.
    <Quentin> Ensuite on irait entre potes, elle decouvrirait alors l'humour qui fait mon charme.
    <Quentin> Et avec le temps les fautes se multiplieraient, les contacts aussi, et un jour un blocage total avec les bras se ferait, elle laisserait tomber le ballon, on se regarderait et ...
    <Quentin> PAFF quoi! Ce serait enfin fait! Comme dans les films !
    <Bob> Mais attends,c'est bien beau mais elle fait du basket ou pas ta voisine?
    <Quentin> Non, mais je travaille sur la question.

    -- http://danstonchat.com/12364.html
  • Un boitier externe pour booter des ISO à

    gogo sans se prendre la tête

    Il s'agit d'un boitier externe pour disque dur 2,5" fabriqué par la société Zalman, qui a la particularité d'avoir un petit écran de contrôle et qui permet de choisir l'ISO sur laquelle vous souhaitez booter...lire la suite

    Microsoft récupère vos clés de chiffrement.

    Voici comment les en empêcher

    Si vous avez acheté un appareil sous Windows 10 équipé d'une puce qui chiffre par défaut le disque, ne vous pensez pas en sécurité pour autant : La clé de récupération qui vous permet de déchiffrer vos données...lire la suite

    En ce moment dans l'univers "Raspberry Pi"

    Voir tous les articles »