2013-03-09 66 views
0

我需要编写一个程序,与Bing.com并行地发送大约200个搜索查询,其效率与后面一样有效。考虑阻塞线程和服务器错误,我应该如何最好地实现它。并行批量搜索海量查询

例如:发送搜索http://www.bing.com/search?q=.net,但关键字是不同的每个serach。

更新 Cuurently,我用HttpClientTask类发送请求,等待/阻塞,并得到结果。我想知道你的解决方案会不会更好。

任何想法或链接将非常感激!

更新

至于建议,我应该使用它的API密钥。

+0

你想用搜索做什么?这可能很容易用[任务并行库]完成(http://msdn.microsoft.com/en-us/library/dd460717.aspx) – Prescott 2013-03-09 22:46:44

+0

是的,我正在使用Task类。我需要下载所有结果。 – Pingpong 2013-03-09 22:48:10

回答

1

搜索引擎不喜欢被内容抓取。它反对他们的TOS,他们积极地阻止它。

除非你有一个允许这样的协议(因此api键),否则它会很难。

该代码可能仅仅是异步Web请求,或者(更简单但效率可能较低)并行同步Web请求。

但是,您需要访问相当数量的代理以避免不可避免的IP禁令。我不会建议你尝试这样做

+0

谢谢!我将改为使用API​​密钥。在编程逻辑方面,请看我的更新。 – Pingpong 2013-03-09 22:44:17

+0

如前所述,最简单的选择将是并行循环中的webrequests,请参阅我的例子(vb.net,但很容易转换为c#)http://stackoverflow.com/questions/13842201/how-to-油门并发异步webrequests – Steve 2013-03-09 22:52:12