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 :-(

  1. 4 Responses to “Naslovnica 101”

  2. 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

  3. Ja čekam da čujem novosti o onom drugom projektu… Znaš na što mislim. ;)

    By Berislav Lopac on Jul 5, 2007

  4. Kreće se ;-)

    By senko on Jul 5, 2007

  5. Svi furaju neke projekte :-X tipa. Po 3+ komada na svakog blogera. :-)

    By Dado on Jul 6, 2007

Post a Comment