I got a bit frustrated today, and decided that I should build a tool to fix my frustration. The problem was that we’re using a lot of XPath queries to scrape various court websites, but there was no tool that could be used to test xpath expressions efficiently.
There are a couple tools that are quite similar to what I just built: There’s one called Xacobeo, Eclipse has one built in, and even Firebug has a tool that does similar. Unfortunately though, these each operate on a different DOM interpretation than the one that lxml builds.
So the problem I was running into was that while these tools helped, I consistently had the problem that when the HTML got nasty, they’d start falling over.
No more! Today I built a quick Django app that can be run locally or on a server. It’s quite simple. You input some HTML and an XPath expression, and it will tell you the matches for that expression. It has syntax highlighting, and a few other tricks up its sleeve, but it’s pretty basic on the whole.
I’d love to get any feedback I can about this. It’s probably still got some bugs, but it’s small enough that they should be quite easy to stamp out.
Update: I got in touch with the developer of Xacobeo. There’s an —html flag that you can pass to it at startup, if that’s your intention. If you use that, it indeed uses the same DOM parser that my tool does. Sigh. Affordances are important, especially in a GUI-based tool.