Parser wrangling

Trying to simplify the parser a bit and create a shared contract for all of the
parsing methods. They now return nil if they are unable to find the correct
value in the page.