【问题标题】:search several web sites using C#使用 C# 搜索多个网站
【发布时间】:2011-08-23 16:18:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: c# search web-crawler


    【解决方案1】:

    如果您计划爬过整个网站来计算这样的单词,如果您不缓存它,您将被阻止,您将基本上请求网站的每个页面。或许考虑整合谷歌域名搜索?

    这是 google 页面的链接,详细介绍了如何与 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/

    【讨论】:

      【解决方案2】:

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

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

      对于不支持 RSS 的网站,您可以考虑使用屏幕抓取工具。查看有关 The Code Project 的这篇文章以帮助您入门:

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

      【讨论】:

      • 如果网站不提供 RSS 源怎么办?
      • 对于不支持 RSS 的网站,您可以考虑使用屏幕抓取工具。
      • 是的,但我仍然需要手动转到每个网页并输入我的查询,对吗?我将搜索 50 个不同的网站,这就是为什么我正在寻找一种让它更快的方法。
      • 我相信这篇文章展示了如何在网站上查询结果。它基本上只是使用 WebRequest 来读取响应流并解析结果。
      • 如果您维护要搜索的站点列表,您应该能够自动执行屏幕抓取过程。您也可以使用一些异步调用来一次执行多个搜索以加快速度。
      【解决方案3】:

      ...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
      

      但除非网站专门将来自该 URL 的搜索结果设计为结构化数据,否则网站不会“告诉 [您] 一​​直出现 'funny'”,而是会向您发回适合的搜索响应为了让浏览器显示,所以你必须从这个 HTML 流中解析结果。

      例如:

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

      【讨论】:

      • 如果这么简单,我就不需要帮助了。该站点分配了一个搜索 ID,例如。 "/SearchResults.aspx?searchID=00865caa-ed5c-46a1-b850-0450f102dda5&page=0&set=0&pageSize=100" 但是我想访问的页面只是一个标准网页。例如:“[许多其他不变的东西]RecID=5358254”
      • @wizlog:我想你误解了我的意思。我并不是说这很简单。相反,我是在向您展示,这确实不像您希望的那么简单;这样一个在查询字符串中附加了搜索词的 URL 的结果是一个 HTML 标记流,而不仅仅是出现的列表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      相关资源
      最近更新 更多