【问题标题】:get html source code from google search从 google 搜索获取 html 源代码
【发布时间】:2015-08-24 12:44:10
【问题描述】:

我想从这个谷歌搜索中提取数据

https://www.google.com.ph/?gfe_rd=cr&ei=JQ7bVZjRDOSL8QeqibewAwgws_rd=ssl#q=scarlett+johansson+age

我想通过获取这个特定的 div 标签来了解艺术家的年龄

<div class="_eF">30 years (November 22, 1984)</div>

这是我目前的代码

Document doc = Jsoup.connect("https://www.google.com.ph/?gfe_rd=cr&ei=eKfaVbWXBomM8QexmIOACw&gws_rd=ssl#q=scarlett+johansson+age").get();
Elements age = doc.getElementsByClass("#_eF");
String urlSource = age.html();

但我得到的只是 javascript 代码,而不是实际的 html 源代码

【问题讨论】:

  • 班级明明是_eF,为什么还有#_eF
  • 不管怎样都行不通,因为返回的值是javascript,不包含两者中的任何一个。(#_eF和_eF)
  • 向我们展示它为您提供了什么。
  • 它给出了实际的页面源_.Ib=!_.L||9&lt;=_.Hb;_.Jb=!_.sb&amp;&amp;!_.L||_.L&amp;&amp;9&lt;=_.Hb||_.sb&amp;&amp;_.N("1.9.1");_.Kb=_.L&amp;&amp;!_.N("9");_.Lb=_.L||_.qb||_.M; }catch(e){_._DumpException(e)} try{ _.x("gbar.elr",function(){return{es:{f:152,h:60,m:30},mo:"md",vh:window.innerHeight||0,vw:window.innerWidth||0}}); }catch(e){_._DumpException(e)} })(this.gbar_); // Google Inc.
  • 试试 Deximus 刚刚发布的答案

标签: java jsoup


【解决方案1】:

你做错了。通过doc.getElementsByClass,您可以获得多个结果(或者 Jsoup 会处理这些结果)。

你想做的是:

Document doc = Jsoup.connect("https://www.google.com.ph/?gfe_rd=cr&ei=eKfaVbWXBomM8QexmIOACw&gws_rd=ssl#q=scarlett+johansson+age").get();
Elements age = doc.select("div._eF");
String urlSource = age.html();

【讨论】:

【解决方案2】:

试试http://htmlunit.sourceforge.net/

WebClient webClient = new WebClient(BrowserVersion.CHROME);\
HtmlPage page = webClient.getPage("http://link.com/");
webClient.waitForBackgroundJavaScript(3000);
DomElement el = page.getElementById("_eF");

【讨论】:

    【解决方案3】:

    您可以切换技术。您可以使用Selenium webdriver 代替Jsoup,它基本上可以远程控制网络浏览器。这应该完全能够从 AJAX 调用呈现 HTML。

    或者,您可以找出 google 实际返回的内容以及调用了哪个 API URL。然后,您可以直接解析响应。他们很可能使用易于解析的 JSON。有很多图书馆可以处理这个问题。 (JSON-SimpleGSonJackson 等等)

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 1970-01-01
      • 2013-04-06
      • 2012-04-22
      • 2011-03-03
      • 1970-01-01
      相关资源
      最近更新 更多