使用C#搜索多个网站

时间:2011-08-23 16:18:20

标签: c# search web-crawler

我可以使用C#自动搜索网站,然后返回搜索结果吗?

如果我给它一个顶级域名(例如:我告诉它在stackoverflow.com上找到“有趣”这个词),是否有一个网络爬虫可以做同样的事情,它会告诉我所有的时间“有趣”出现)?

这些网站允许通过搜索栏进行搜索。

我是否需要网站合作来自动搜索?

注意:我只计划每天进行一到两次搜索,所以我怀疑自己会被封锁,或者被要求对自己进行身份验证。

3 个答案:

答案 0 :(得分:2)

如果您计划浏览整个网站以计算这样的字词,如果您不缓存它,您将被阻止,您将基本上请求该网站的每个页面。也许考虑整合谷歌域名搜索?

这是googles页面的链接,详细说明了如何与c#

进行交互

http://code.google.com/apis/gdata/client-cs.html

编辑:抱歉,这不太对:http://gsalib.codeplex.com/

http://answers.oreilly.com/topic/2165-how-to-search-google-and-bing-in-c/

答案 1 :(得分:1)

...web sites allow searching via their search bar ... Can I use C# to auto search websites, then return the search results?

是的,如果网站提供了一个URL,其中搜索词作为URL的查询字符串参数提供。

          http://yourTargetDomain?searchterm=foo

但除非网站专门设计了该网址的搜索结果为结构化数据,否则网站不会“告诉[你]所有时间'有趣'出现”,但会向您发回适合的搜索回复要显示浏览器,因此您必须从此HTML流中解析结果。

例如:

http://philadelphia.craigslist.org/search/tls?query=ladder&srchType=A&minAsk=&maxAsk=

答案 2 :(得分:1)

我会考虑构建一个RSS聚合器。 RSS是标准化的,因此这可能是从各种来源收集搜索结果的最可靠方式。

编辑:适用于不支持RSS的网站

对于不支持RSS的网站,您可以查看使用屏幕抓取工具。查看关于代码项目的这篇文章,以帮助您入门:

http://www.codeproject.com/KB/aspnet/weather.aspx