WebProg-2012/Gyakorlat3
A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „== Bevezetés ==”) |
|||
1. sor: | 1. sor: | ||
== Bevezetés == | == Bevezetés == | ||
+ | |||
+ | * Ami mindenképp kelleni fog a python file-od elejére: | ||
+ | from lxml import etree | ||
+ | * Az lxml dokumentációját megtaláljátok [http://codespeak.net/lxml/ ezen] az oldalon. | ||
+ | |||
+ | |||
+ | * Valószinüleg kelleni fog még, hogy a karakter kódolás jó legyen: | ||
+ | import sys | ||
+ | reload(sys) | ||
+ | sys.setdefaultencoding("iso-8859-2") | ||
+ | |||
+ | |||
+ | * A webrõl html oldalt a következõ függvénnyel tölthetünk le egy string-be: | ||
+ | require urllib | ||
+ | |||
+ | def get_html(uri): | ||
+ | u = urllib.urlopen(uri) | ||
+ | return u.read() | ||
+ | * Utána simán beírhatjuk: | ||
+ | html_str = get_html("http://www.google.com") | ||
+ | |||
+ | |||
+ | * Hogy elkezdhessünk bányászni, a következõket kell megtennünk: | ||
+ | import StringIO | ||
+ | |||
+ | html = etree.parse(StringIO.StringIO(html_str),parser) | ||
+ | |||
+ | |||
+ | * Ezek után használhatjuk az xpath függvényt, a következõ módon: | ||
+ | html.xpath("/html/body/p") | ||
+ | : ahol a /html/body/p az útvonal a html-fában. | ||
+ | * Az xpath függvény egy listát fog visszaadni, így vagy [0], [1] stb.-vel kérdezzétek le az elemeit, vagy egy for ciklussal menjetek végig rajta. | ||
+ | * Ha már lekértétek valamelyik elemét, akkor a text adattagjában van a benne tárolt szöveg, pl: | ||
+ | h.xpath("/html/body/p")[1].text | ||
+ | : ez lekéri a második html/body-n belüli p-nek a szövegét | ||
+ | |||
+ | |||
+ | * Az xpath-ban a következõket használhatjátok még: | ||
+ | ** /html//p - a html-en belül bármilyen útvonalon elérhetõ p-k | ||
+ | ** /html/body/* - a közvetlenül /html/body alatti összes csúcs | ||
+ | ** /*/*/ul - a 2 hosszú úton elérhetõ ul-ek | ||
+ | ** "//a[@href='http://math.bme.hu']" - bármilyen útvonalon elérhetõ 'a'-k amiknek a href attribútuma a 'http://math.bme.hu' | ||
+ | ** |
A lap 2012. szeptember 20., 11:08-kori változata
Bevezetés
- Ami mindenképp kelleni fog a python file-od elejére:
from lxml import etree
- Az lxml dokumentációját megtaláljátok ezen az oldalon.
- Valószinüleg kelleni fog még, hogy a karakter kódolás jó legyen:
import sys reload(sys) sys.setdefaultencoding("iso-8859-2")
- A webrõl html oldalt a következõ függvénnyel tölthetünk le egy string-be:
require urllib
def get_html(uri): u = urllib.urlopen(uri) return u.read()
- Utána simán beírhatjuk:
html_str = get_html("http://www.google.com")
- Hogy elkezdhessünk bányászni, a következõket kell megtennünk:
import StringIO html = etree.parse(StringIO.StringIO(html_str),parser)
- Ezek után használhatjuk az xpath függvényt, a következõ módon:
html.xpath("/html/body/p")
- ahol a /html/body/p az útvonal a html-fában.
- Az xpath függvény egy listát fog visszaadni, így vagy [0], [1] stb.-vel kérdezzétek le az elemeit, vagy egy for ciklussal menjetek végig rajta.
- Ha már lekértétek valamelyik elemét, akkor a text adattagjában van a benne tárolt szöveg, pl:
h.xpath("/html/body/p")[1].text
- ez lekéri a második html/body-n belüli p-nek a szövegét
- Az xpath-ban a következõket használhatjátok még:
- /html//p - a html-en belül bármilyen útvonalon elérhetõ p-k
- /html/body/* - a közvetlenül /html/body alatti összes csúcs
- /*/*/ul - a 2 hosszú úton elérhetõ ul-ek
- "//a[@href='http://math.bme.hu']" - bármilyen útvonalon elérhetõ 'a'-k amiknek a href attribútuma a 'http://math.bme.hu'