从谷歌搜索获取HTML源代码

时间:2015-08-24 12:44:11

标签: java jsoup

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

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源

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

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

或者,您可以了解Google实际返回的内容以及调用的API网址。然后,您可以直接解析响应。可能他们使用JSON,这很容易解析。有很多图书馆可供处理。 (JSON-SimpleGSonJackson仅举几例)