首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌搜索结果html代码c#

谷歌搜索结果html代码c#
EN

Stack Overflow用户
提问于 2011-07-01 01:40:36
回答 3查看 6.2K关注 0票数 1

我必须创建一个应用程序,它将-对于给定的术语-从google搜索页面下载前10个结果的链接,但是有一个问题,

如果我用webClient而不是html下载源代码--我得到的是JS代码。

如果我查看Google chrome (ctrl+u)中的源代码,我会得到同样的结果,但如果我尝试使用内置开发人员工具检查该元素,我可以看到真正的html代码

有人知道如何下载真正的html代码以便提取链接吗?

EN

回答 3

Stack Overflow用户

发布于 2011-07-01 01:44:07

您应该使用Google自定义搜索API

http://code.google.com/apis/customsearch/v1/overview.html

下面的示例显示了搜索"cars“的前10个结果

代码语言:javascript
复制
<html>
  <head>
    <title>JSON/Atom Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function hndlr(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.htmlTitle should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.htmlTitle;
      }
    }
    </script>
    <script src="https://www.googleapis.com/customsearch/v1?key=YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=cars&callback=hndlr">
    </script>
  </body>
</html>
票数 5
EN

Stack Overflow用户

发布于 2011-11-08 13:41:56

您可以创建一个Perl脚本来只提取您想要的数据,即使它包含大量的JavaScript,文档也是有效的HTML,因此您可以使用HTML解析器将其转换为XHTML并使用XML::SimpleXML::Twig

票数 2
EN

Stack Overflow用户

发布于 2011-07-01 01:59:44

这是我用来从google获取搜索结果的一些代码,使用API:

代码语言:javascript
复制
string googleUriPattern =
        "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&safe=off&rsz=large&userip={0}&q={1}";
var requestUri = new Uri(
    string.Format(
        googleUriPattern,
        "A valid IP address",
        "query"
    ));

var httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUri);
httpWebRequest.Timeout = 5000;

using (var webResponse = httpWebRequest.GetResponse())
using (var sr = new StreamReader(webResponse.GetResponseStream()))
{
    var result = JsonConvert.DeserializeXNode(sr.ReadToEnd(), "responseData");
    var searchResultCount = Convert.ToInt32((string)result.Descendants("estimatedResultCount").FirstOrDefault());
}

正如你所看到的,我的案例是确定Google对查询的估计结果计数,但你会得到完整的回复,如果你愿意,你可以从中读取结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6538847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档