0

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

特别是位于屏幕右下角的元素,称为“estatisticas”

我尝试下载 FireBug 并使用 jsoup 获取 HTML 文件,但没有成功。Jsoup 找不到我想要的内容,这让我有点恼火。我知道我应该使用哪些技术/api 或任何东西来从网站获取全部数据,如果你们帮助我,我将不胜感激。

提前致谢。

4

3 回答 3

2

'estatisticas' 是在页面加载后通过 AJAX 调用加载的——你不能从页面上刮掉它们,因为它们不存在。

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

于 2013-10-22T05:43:57.933 回答
0

为此,您需要探索像 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);
}
于 2013-10-22T05:45:28.817 回答
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();
    }
}

PS maven HttpClient

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

希望能帮助到你:)

于 2013-10-22T06:01:02.560 回答