Beautiful Soup – překrásná polívka v Python-u

napsal admin

October, 2008

Naposledy upraveno: 17.June, 2009

Pro svůj nejnovější projekt Katalog Prádla jsem potřeboval jednoduchou věc: posbírat data ze stránek 3 internetových obchodů (1, 2, 3) a převést je do mé databázi. Řeknete si, jednoduchá věc ale ono to má své háčky (to, že spomínané obchody provozujou provizní systém ale ne XML feed pro své partnery je na jinou debatu).

Takže, jaký nástroj použít? Potřebuji:

Zde budu hovořit jen o prvním bodě, parsování HTML stránek (zbylé dvě obsahuje Python v sobě).

K tomuto účelu se dá použít i standardní knihovna Pythonu, ale ta má “trošku” neohrabaný interfejs. Trošku Googlení a natrefil jsem na zaujímavý projekt: Beatiful Soup. Základní 3 vlastnosti, kterými se pyší :

Nyní nemusím myslet a programovat hodiny ako vydolovat cenné informace ze stránek, všechno je záležitostí pár řádků, viz příklad:

import urllib2
from BeautifulSoup import BeautifulSoup

slovo = "seznam"
stream = urllib2.urlopen('http://www.firmy.cz/statsScreen?serverId=seznam.search&section=&collocation=%s' % slovo)
soup = BeautifulSoup( stream.read() )
stream.close()

denna_navstevnost = int( soup.findAll('div', 'average')[0].findAll('p')[0].findAll('strong')[1].contents[0].replace(' ', '') )
print "Denna navstevnost slova %s je %i" % ( slovo, denna_navstevnost )

Tento příklad se připojí na známou stránku seznamu, výslednou HTML(nemusí být validní) stánku předhodí Beatiful Soup. Krkolomný výraz najde všechny DIV s class ‘average’, vybere první, v tomto DIVe najde všechny P, vybere první a tak dále až se dostaneme k požadované informaci a tou je denní návštěvnost daného slova. (Určitě se dá daný výraz napsat hezčeji, je to jenom pro příklad). Každopádně, plnou a vyčerpávající dokumentaci naleznete na stránce ku knihovně.

Přeji chutnou polívku!

pridej.cz

[Kategorie: Programování, Python] [TrackBack URL] [RSS] [RSS(Komentáře)]


Komentáře

  1. Scar 6.February, 2008 napsal:

    Pěkný!
    Myslím, že na cz internetu fandové pythonu ocení každý takový článek:-)

  2. Jiri Horky 14.March, 2011 napsal:

    Dobry den,

    jste si vedom toho, ze krast takto data z jinych obchodu je nelegalni?

    Jiri Horky

  3. MichaelTem 12.January, 2017 napsal:

    cymbalta generic buy zithromax order lasix with no prescription tadalafil without prescription mobic baclofen 10 mg no prescription

Přidej komentář


© 2008 Kiwwisk na internetu píše Andrej Kesely | Další odkazy: slevy v českých obchodech