我可以使用C#自动搜索网站,然后返回搜索结果吗?
如果我给它一个顶级域名(例如:我告诉它在stackoverflow.com上找到“有趣”这个词),是否有一个网络爬虫可以做同样的事情,它会告诉我所有的时间“有趣”出现)?
这些网站允许通过搜索栏进行搜索。
我是否需要网站合作来自动搜索?
注意:我只计划每天进行一到两次搜索,所以我怀疑自己会被封锁,或者被要求对自己进行身份验证。
答案 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的网站,您可以查看使用屏幕抓取工具。查看关于代码项目的这篇文章,以帮助您入门: