Parsear HTML

Obtener contenido de la página

1) Importar librerías

import htmllib, urllib, formatter, sys

2) Abrir una pagina y obtener su contenido

web = urllib.urlopen('http://www.klinware.com')
data = web.read()
web.close()

3) Dar formato a la información

format = formatter.AbstractFormatter(formatter.DumbWritter(sys.stdout))
  • Con DumbWritter obtenemos 72 caractéres por línea
  • sys.stdout es para sacar la información por consola

4) Parsear la información HTML

ptext = htmllib.HTMLPaser(format)
ptext.feed(data) 
ptext.close()

3) No doy ningun formato

format = formatter.AbstractFormatter(formatter.NullWriter()))

4) Parsear HTML

ptext = htmllib.HTMLParser(format)
ptext.feed(data)

5) Obtener los links de la propiedad anchorlist

for link in ptext.anchorlist:
  print(link)

Scrapear citas

1) Importar librerías

import urllib, re, sys

2) Definir símbolo a escrapear

symbol = sys.argv[1]

3) Descargar contenido de página

url = 'http://finance.google.com/finance?q='
content =urllib.urlopen(url+symbol).read()

4) Scrapear citas

m = re.search('span id="ref.*>(.*)<', content)

5) Mostrar citas

if m:
  quote = m.group(1)
else:
  quote = 'no quote for symbol: ' + symbol
print(quote)

Web Crawler

1) Importar librerias

import urllib, htmllib, formatter, re, sys

2) Cargar la página, dar formato y parsear links

url = sys.arv[1]
web = urllib.open('http://' + url)
data = web.read()
web.close()
format = formatter.AbstractFormatter(formatter.NullWriter())
ptext = htmllib.HTMLParser(format)
ptext.feed(data)
links = []
links = ptext.anchorlist

3) Crawlear los demás links

for link in links:
  if re.search('http', link) != None:
    print(link)
    web = urllib.urlopen(link)
    data = web.read()
    web.close()
    ptext = htmllib.HTMLParser(format)
    ptext.feed(data)
    morelinks = ptext.anchorlist
    for alink in morelinks:
      if re.search('http', alink) != None:
        links.append(alink)

results matching ""

    No results matching ""