Tôi đang đọc từ một url trong mã java của tôi nhưng trang tôi muốn đọc thực hiện lệnh khi được tải và InputStreamReader đọc trang trước khi nó được tải hoàn toàn, do đó, trình đọc đệm của tôi chỉ thu thập HTML trên trang trước khi nội dung thực được tải.Đợi đến khi trang được tải trước khi đọc nội dung từ một URL trong Java
Mục tiêu chính của tôi là tìm từ "bán hàng" trên trang, nhưng tôi không thể làm điều này nếu luồng được mở được kết nối trước khi toàn bộ trang được tải. Có cách nào để chờ nó tải hay gì đó không?
Đây là mã của tôi:
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();
}
Điều này không có ý nghĩa. 'BufferedReader' sẽ đọc trang tuần tự cho đến khi luồng không có nhiều nội dung hơn. Bất kỳ thứ gì mà trang viết sẽ được đọc. Nếu trang là động, nó vẫn sẽ nhận nội dung. Nếu các hành động tải sau được thực hiện trong javascript, thì cách tiếp cận này sẽ không bao giờ hoạt động vì nó sẽ không thực thi hoặc thậm chí tìm nạp javascript. – jiggy