Throw execption on non 200 requests

Before this change, failures like 404s would render html that would then
fail when parsing was attempted