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'
Személyes eszközök