使用Java从网站获取内容

时间:2013-10-22 05:33:49

标签: java html

我希望获得此网站的所有内容http://globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/

特别是位于屏幕右下方的元素名为“estatisticas”

我尝试下载FireBug并使用jsoup获取HTML文件,但它无法正常工作。 Jsoup找不到我想要的内容,这让我有点生气。 Idk哪些技术/ api或我应该使用什么来从网站获取整个数据,如果你们帮助我,我感激不尽。

提前致谢。

3 个答案:

答案 0 :(得分:2)

'estatisticas'在页面加载后通过AJAX调用加载 - 你不能从页面中删除它们,因为它们不存在。

但是,您可以在以下地址获取JSON格式:http://globoesporte.globo.com/temporeal/futebol/20-10-2013/botafogo-vasco/estatisticas.json

答案 1 :(得分:0)

为此你需要探索像jsoup和HTML解析器这样的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);
}

答案 2 :(得分:0)

如果您打算抓取网站,可以使用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();
    }
}

<强> P.S。 HttpClient的专家:

<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

希望有所帮助:)