0

我正在尝试从网页解析一些int,但遇到了一些问题:

1 网页是使用 javascript 生成的。

此示例代码(Credz 到 Oracle.com。StackOverflow 不会让我链接)在执行 javascript 之前打印出 html 代码。

import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL oracle = new URL("http://www.oracle.com/");
        URLConnection yc = oracle.openConnection();
        BufferedReader in = new BufferedReader(new InputStreamReader(
                                    yc.getInputStream()));
        String inputLine;
        while ((inputLine = in.readLine()) != null) 
            System.out.println(inputLine);
        in.close();
    }
}

问:如何获取生成的html?

2直接进入链接时网页没有正确渲染: 这个直接链接会渲染为一个空的“shell”。转到此链接并单击Vis utskriftsside(左下)将打开一个新的正确渲染的窗口。

问:这两个链接有什么区别?如何使用直接链接访问正确呈现的网页?

编辑

这是生成我要抓取的数字的 HTML/JavaScript:

 <div id="drawNumbers" class="drawn-numbers">
 <script type="text/javascript">
    var tableData ='';
    if (opener.draw_numbers) {
        for(var i = 0; i<opener.draw_numbers.length;i++){
            tableData += '<div class="number" style="left:'+(i*28+8)+'px;">';
            tableData += '<img width="23" height="23" alt="" src="/nt-keno/result/images/res_keno_tallramme_print.gif">';
            tableData += '</div>';
            tableData +=  '<div class="number" style="left:'+(i*28+9)+'px; top:9px; z-index: 30;">' +opener.draw_numbers[i]+ '</div>';
        }
    }
    document.writeln(tableData);
</script>
</div>

我可以将此数组导入java吗?

opener.draw_numbers[i]
4

2 回答 2

1

您正在做的事情被称为“抓取”,动态页面通常会导致问题:

你如何抓取 AJAX 页面?

在 Android 应用程序中抓取动态生成的 html

处理由 javascript 生成的动态 HTML 的最佳 Web 抓取 Ruby on Rails 库

没有简单的解决方案。

于 2012-09-11T20:24:04.917 回答
0

该页面有一个框架,其中包含:

https://www.norsk-tipping.no/nt-keno/result/keno_result_info.jsp?drawID=1771&bet=10&keno_level=10

数据来自一个 json url。您可以使用 firebug 等工具看到这一点:

https://www.norsk-tipping.no/api-keno/getResultInfo.json

于 2012-09-11T22:04:05.003 回答