- From: Dan Connolly <connolly@w3.org>
- Date: Sun, 18 Nov 2007 09:16:10 -0600
- To: www-rdf-calendar@w3.org
- Cc: www-archive+breadcrumbs@w3.org
You may have seen:
A new Basketball season brings a new episode
in the personal information disaster
by connolly on Thu, 2006-11-16 12:39
tags: calendar | GRDDL | microformats | RDF | XHTML
http://dig.csail.mit.edu/breadcrumbs/node/172
A new schedule came this week, and it had an unexpected linebreak,
so I upgraded from tidy and regular expressions
to html5lib and ElementTree.
This message has most of the raw materials for another
breadcrumbs episode...
import html5lib # http://code.google.com/p/html5lib/
from html5lib import HTMLParser, treebuilders
from xml.etree import cElementTree
def parseHTML(fn="bball-practice.html"):
"""
>>> e = parseHTML()
>>> e.tag
'html'
>>> rows = e.getiterator('tr')
>>> len(list(rows))
24
"""
f = open(fn)
parser = HTMLParser(tree=treebuilders.getTreeBuilder("etree",
cElementTree))
return parser.parse(f)
...
def eachEvent(...):
...
for t in elt.getiterator('table'):
cell = t.find('tbody/tr/td')
if not cell: continue
hd = cell.findtext('b')
if not hd: continue
if 'First Name' in hd: break
else:
raise ValueError, elt
for my reference, some hg logs:
16:ae65b101cf4c 2007-11-18 got html5lib talking with etree
17:5f81574c79fb 2007-11-18 - use html5lib and ElementTree rather than
tidy and regular expressions
--
Dan Connolly, W3C http://www.w3.org/People/Connolly/
gpg D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Sunday, 18 November 2007 15:16:20 UTC