Gaining better performance when screen scraping is required
It's hard to tell exactly how it's being utilized since your code sample is an example.  However, a few notes.  

Due to the design of your use case above most of the time any improvements are going to pale in comparison to pulling a web page live (especially multiple).  If you want real improvement, cache the information from the other websites.

Regarding the Code sample above, the only item I would recommend looking into is the parallel.foreach statement.  If you utilize it, make sure you've already pulled all the data from the database to loop through (not waiting on EF lazy loading).  Otherwise you will run into some EF threading issues.

I would also recommend creating static delegate methods for each website provider and when your application loads put the methods into a concurrent dictionary.  It will help to clean up you code to make it more readable.