Ho bisogno di fare un progetto abbastanza ampio che coinvolge il web scraping e sto prendendo in considerazione l'utilizzo di Hpricot o Beautiful Soup (cioè Ruby o Python). Qualcuno si è imbattuto in un tutorial che pensavano fosse particolarmente adatto a questo argomento e mi avrebbe aiutato a iniziare il progetto con il piede giusto?Cerchi una raccomandazione di un buon tutorial sulle migliori pratiche per un progetto di scraping web?
risposta
C'è uno Railscasts episode eccellente su ScrAPI.
Non uno strumento, davvero, ma una buona discussione è il libro di Michael Shrenk, Webbots, Spiders, and Screen Scrapers.
Il libro riesce molto bene nella sua missione dichiarata: spiegare come costruire semplici web robot e gestirli in conformità con gli standard della comunità. Non è tutto quello che devi sapere, ma è la migliore introduzione che ho visto. L'attenzione si concentra su semplici robot a thread singolo. C'è un piccolo accenno all'uso di bot multipli che memorizzano i dati in un repository centrale, ma non si discute dei problemi relativi alla scrittura di bot multi-thread o distribuiti che possono elaborare centinaia di pagine al secondo.
Ti consiglio di leggere questo libro se sei interessato a scrivere bot Web, anche se non hai familiarità o intenzione di utilizzare PHP. Ma assicurati di non aspettarti di più delle offerte di libri.
Per Ruby, il toolkit di scrapbook Web Scrubyt è eccellente. Ecco an extensive introduction, che vale la pena di leggere anche se utilizzerai qualche altro strumento.
Cerca su lxml invece di BeautifulSoup. Nonostante il suo nome, è anche per l'analisi e lo scraping di HTML. È molto, molto più veloce di BeautifulSoup, e gestisce anche l'HTML "spezzato" meglio di BeautifulSoup (la loro pretesa di fama - lxml non è così vocale a riguardo). Ha anche un'API di compatibilità per BeautifulSoup se non vuoi imparare l'API lxml.
Non c'è più motivo di utilizzare BeautifulSoup più, a meno che tu non sia su Google App Engine o qualcosa in cui qualcosa non puramente Python non è consentito.
Date un'occhiata alle seguenti screencast:
- http://railscasts.com/episodes/190-screen-scraping-with-nokogiri
- http://railscasts.com/episodes/191-mechanize
O se vi piace la pianura, i asciicasts corrispondenti:
Esiste anche una versione in rubino di Mechanize. –
Grazie per Scrapy. Sembra bello – Alagu