[Corpora-List] Extracting only editorial content from a HTML page
Mike Maxwell
maxwell at ldc.upenn.edu
Wed Aug 10 02:02:38 UTC 2005
Lou Burnard wrote:
> The other tool for this purpose which no-one has (so far) mentioned is
> tidy -- http://tidy.,sourceforge.net
>
> It will take almost any html and turn it into something usable very
> fast; it's also very robust and there is a choice of APIs for
> integrating it into your own production system
I think the original question was how to deal with the boilerplate text
that often appears at the top and bottom of html files, so it doesn't get
included in the text one extracts from a web page. (If that wasn't the
original question, it's mine :-).) By "boilerplate", I mean things like
copyright notices, "Enroll in our big extravaganza", "Download our super
font", menu items, and other such trash.
I dealt with that in some work I did by using regexs tailored to the sort
of trash that each web site used. But the regexs had to be tailored, they
were fragile when a site changed its boilerplate (as someone else pointed
out), and you could in fact run out of stack space in Python (and
presumably other interpreters), so you had to be careful how you designed
your regexs. All in all, not a very good solution.
I should look back and see if I can just skip to the first <p> tag, but
again, I doubt whether that will work for all sites: some of them put the
main text into tables, IIRC.
Possibly I could do some sort of language ID (since all of the texts I
wanted were non-English). But then again, some of the menu items were
non-English. Or given that this stuff is boilerplate, and tends to change
slowly at any one web site, maybe I could train a recognizer for the
boilerplate (as opposed to a recognizer for the text). Has anyone tried
that? (One piece that sometimes occurs inside the boilerplate, and which
changes rapidly, is the date. Again, I used a regex "solution".)
I haven't tried the "look for the place where you start to get a higher
text-to-tag ratio" method that was also mentioned.
It looks to me like 'tidy' is intended to handle incorrectly structure
html. Can it be used to extract text, and in particular to throw away
header and footer boilerplate?
--
Mike Maxwell
Linguistic Data Consortium
maxwell at ldc.upenn.edu
More information about the Corpora
mailing list