Scraping the web for information has always been a difficult task. Web browsers use static HTML to generate a DOM and the HTML is not always complete or correct. Luckily,browsers do an incredible job of rendering a page from poorly written or even broken HTML.