我正在阅读我的java代码中的url,但是我想要读取的页面在加载时执行命令,并且InputStreamReader在完成加载之前读取页面,所以我的缓冲阅读器仅在加载真实内容之前收集页面上的HTML。从Java中的URL读取内容之前加载页面
我的主要目标是在页面上找到单词“sales”,但如果打开的流在加载完整页面之前已连接,则无法执行此操作。有没有办法等待它加载或什么?
这里是我的代码:
URL url = new URL("http://urlgoeshere.com?"+ withAParam);
URLConnection uc = url.openConnection();
uc.connect();
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String inputLine = in.readLine();
int index = -1;
while ((inputLine = in.readLine()) != null){
index=inputLine.toLowerCase().indexOf("sales");
if(index>=0){
log.info("Found sales!");
break;
}
}
if (in != null){
in.close();
}
这没有意义。 “BufferedReader”将顺序读取页面,直到流没有更多内容。页面写入的任何内容都将被读取。如果页面是动态的,它仍然会提取内容。如果加载后的操作是在JavaScript中完成的,那么这种方法将无法执行,因为它不会执行,甚至不会获取JavaScript。 – jiggy