Two things bit me while building a price tracker. A page can come back "successful" but empty (in my case, compressed content the client couldn't decode), and saving that blindly overwrites good data. So I refuse any page with no title and no price, and only record a change when...