我正在尝试从网页解析一些 int ,但我遇到了一些问题:
1 该网页使用javascript生成。
此示例代码(Credz to 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 直接转到该链接时,网页无法正确呈现: This direct link将呈现为空的“shell”。 转到this link并点击 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]
答案 0 :(得分:1)
您正在做的事情被称为'抓取',动态网页通常会导致问题:
Scraping dynamically generated html inside Android app
Best web scraping Ruby on Rails library that handles dynamic HTML produced by javascript
没有简单的解决方案。
答案 1 :(得分:0)
该页面的框架包含:
https://www.norsk-tipping.no/nt-keno/result/keno_result_info.jsp?drawID=1771&bet=10&keno_level=10
数据来自json网址。你可以用firebug等工具看到这个: