Naslovnica 101
July 4, 2007 – 11:27 pm…iliti kako je lako u Pythonu sakupljati stvari sa raznih izvora, koristeći dva korisna Python modula, Universal Feed Parser te Beautiful Soup HTML scraper.
Prvo, primjer RSS-a. Ovaj snippet:
import feedparser
f = feedparser.parse('http://blog.senko.net/feed/')
print f['items'][0]['title'].encode(’utf-8′)
..će iz vašeg omiljenog RSS feeda izvući i ispisati naslov najnovijeg posta. Osim jednostavnosti, feedparser se odlikuje i robustnošću, pa tako može prežvakati različite verzije RSS i Atom feedova, a ne zbunjuju ga previše niti nepravilnosti poput ne-escapeanih & ili < znakova, što je česta boljka blogova na jednom popularnom blog servisu kod nas.
Drugi primjer je izvlačenje informacija iz neke HTML stranice. Za Naslovnicu sam scrapere pisao posebno za svaki izvor (nije neka velika znanost), ali danas sam baš naletio na zanimljiv modul, Beautiful Soup, koji dodatno olakšava tako nešto. Primjer:
import re
import BeautifulSoup
import urllib
lines = urllib.urlopen('http://www.index.hr/').readlines()
soup = BeautifulSoup.BeautifulSoup(''.join(lines))
links = soup.findAll(name='a', href=re.compile('.*clanak.aspx.*'))
for l in links:
print l.string.encode('utf-8')
Ovaj snippet će pokupiti vijesti s naslovne stranice jednog poznatog domaćeg portala, i ispisati te naslove (za oba snippeta pretpostavlja se da terminal ispravno prikazuje UTF-8 encoding).
Stvar je naprosto prelagana. Primjeri jesu trivijalni, ali dobro pokazuju kako za Python praktički sve što vam treba a da je koliko-toliko standardno (i nije specifično baš za vašu primjenu) već postoji napisano u obliku nekog modula. Predobro :)
PS. Iz teme se može zaključiti se da namjeravam uskoro pozabaviti Naslovnicom malo … već predugo nisam nikakve novotarije izvodio. Premalo vremena, pa hobi projekti pate :-(


4 Responses to “Naslovnica 101”
A za zekanje s XML-om mi je zakon ElementTree (standardno u Pythonu od 2.5.* inačice): http://effbot.org/zone/element-index.htm
By vuk on Jul 5, 2007
Ja čekam da čujem novosti o onom drugom projektu… Znaš na što mislim. ;)
By Berislav Lopac on Jul 5, 2007
Kreće se ;-)
By senko on Jul 5, 2007
Svi furaju neke projekte :-X tipa. Po 3+ komada na svakog blogera. :-)
By Dado on Jul 6, 2007