pyspider est une librairie proposant un robot d’indexation paramétrable en Python. Une fois le script rédigé, une interface web permet d’explorer les résultats et processus en cours. L’architecture de pyspider permet une utilisation distribuée.

Alt Text

Les différentes informations des pages webs sont disponibles sous le format pyquery, semblable au format j-Query.

La fréquence d’indexation ainsi que la durée de vie des informations sont complètement paramétrables (ici, avec une durée de vie de 10 jours) :

from pyspider.libs.base_handler import *


class Handler(BaseHandler):
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('http://scrapy.org/', callback=self.index_page)

    @config(age=10 * 24 * 60 * 60)
    def index_page(self, response):
        for each in response.doc('a[href^="http"]').items():
            self.crawl(each.attr.href, callback=self.detail_page)

    @config(priority=2)
    def detail_page(self, response):
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }