【问题标题】:How to get the HTML source of a google search page?如何获取谷歌搜索页面的 HTML 源代码?
【发布时间】:2015-03-03 22:23:46
【问题描述】:

我正在努力提高我的编码技能,我正在尝试设计一种用于查看谷歌搜索的自定义客户端。

我不想使用google API,主要是因为我觉得这样会删掉很多有趣的编程。

我尝试下载网页,以解析 HTML。但是,当我下载搜索页面时,我在原始页面上看到的 URL 中找不到任何有用的数据。

这是一个搜索“文件”一词的示例。

http://pastebin.com/xjF2WRRj

有人知道下载页面html的正确方法吗?

提前致谢

【问题讨论】:

    标签: html vb.net google-search


    【解决方案1】:

    您正在尝试做的是称为 web scraping,或者试图通过假装您通过浏览器加载页面来从网站中提取内容,然后通过查看来访问加载的内容并挑选出页面代码的点点滴滴。这有时可以很好地工作(有整个企业致力于网络抓取!)而其他时候则不是 - 这就是其中之一。

    由于您实际上是在直接翻录页面的代码,而不是通过真正的浏览器查看它,因此没有任何用于下载动态内容的 JavaScript 被执行,因此,您正在寻找的任何内容都没有得到正确加载。您已经(大部分)从页面本身下载了 JavaScript,它负责加载内容,但它没有被执行。

    请尝试下载已由 Google 处理的搜索结果(而不是动态加载的结果)的页面,例如在 Google 上搜索“test”。请注意该搜索与 this one 之间的 URL 差异,后者会动态加载“测试”的结果。

    【讨论】:

    • 非常感谢,解释得很好!
    【解决方案2】:

    以下是获取 HTML 的方法:

    Dim WebRequest As HttpWebRequest = TryCast(HttpWebRequest.Create(SearchString), HttpWebRequest)
    
    Dim WR As HttpWebResponse = TryCast(WebRequest.GetResponse(), HttpWebResponse)
    
    Dim receiveStream As Stream = WR.GetResponseStream()
    
    Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)
    
    Dim Page As [String] = readStream.ReadToEnd()
    

    我会使用 HtmlAgility Pack 来解析它。

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 1970-01-01
      • 2015-03-29
      • 2017-09-13
      • 2010-11-24
      • 1970-01-01
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多