【问题标题】: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 来解析它。