у меня есть блок кодов для чтения содержимого URL страницы, этот код работает хорошо для многих страниц, но доза не работает для некоторых страниц как ссылку ниже:url.openStream() Дос-не работать на некоторых веб-страниц
http://www.sciencedirect.com/science/article/pii/S1351421012701725?np=y
public static String getDataFromWebPage(String url) {
try {
URL urlpage = new URL(url);
InputStream is = urlpage.openStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
public static void main(String[] args) {
System.out.println("*******************************");
System.out.println("*******************************");
System.out.println(getDataFromWebPage("http://www.sciencedirect.com/science/article/pii/S1351421012701725?np=y"));
System.out.println("*******************************");
System.out.println("*******************************");
}
Это занимает много времени, но на выходе не получается никакого результата (или любого исключения).
Возможно ли, что сервер имеет некоторый алгоритм, чтобы не отвечать на запросы от роботов?
как решить эту проблему?
В качестве примечания, вы должны очистить буфер, поскольку он не всегда выполняет полный сброс. Несколько раз я был немного этим. Еще лучше, используйте блок ресурсов – gwnp