我希望获得本网站的所有内容http://globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/
特别是位于屏幕右下角的元素,称为“estatisticas”
我尝试下载 FireBug 并使用 jsoup 获取 HTML 文件,但没有成功。Jsoup 找不到我想要的内容,这让我有点恼火。我知道我应该使用哪些技术/api 或任何东西来从网站获取全部数据,如果你们帮助我,我将不胜感激。
提前致谢。
我希望获得本网站的所有内容http://globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/
特别是位于屏幕右下角的元素,称为“estatisticas”
我尝试下载 FireBug 并使用 jsoup 获取 HTML 文件,但没有成功。Jsoup 找不到我想要的内容,这让我有点恼火。我知道我应该使用哪些技术/api 或任何东西来从网站获取全部数据,如果你们帮助我,我将不胜感激。
提前致谢。
'estatisticas' 是在页面加载后通过 AJAX 调用加载的——你不能从页面上刮掉它们,因为它们不存在。
但是,您可以在以下地址以 JSON 格式获取它们:http: //globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/estatisticas.json
为此,您需要探索像 jsoup 和 HTML parser 这样的 html 解析器。如果您想要包括 html 标签在内的所有代码,那么您也可以尝试此代码
URL url = new URL("http://www.example.com");
InputStream io = url.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(io));
String str ="";
while((str=br.readLine())!=null)
{
System.out.println(str);
}
如果你打算爬取一个网站,你可以使用HttpClient
,它可以提供几乎所有的 HTTP 协议操作。这是一个可能适合您想要的代码片段:
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try {
// do something useful
} finally {
instream.close();
}
}
PS
maven HttpClient
:
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
希望能帮助到你:)