See the question and my original answer on StackOverflow

HtmlAgilityPack has an HtmlWeb utility class that can download a page, but its synchronous, unlike the webbrowser.

Alternatively you can use HttpWebRequest or WebClient to download the page text and Html Agility Pack to parse it. Both can use asynchronous methods, for example the WebClient has the DownloadDataCompleted event.