Получение фактического текстового ответа веб-страницы в Java
Я использую Java и пытаюсь получить содержимое веб-сайта, чтобы я мог анализировать текст на странице, однако каждый раз, когда я "получаю" ответ от сервера, он приходит со страницы входа, а не со страницы веб-сайта. на что я смотрю.
Я вошел на веб-сайт во всех моих браузерах, но мое приложение не может видеть страницу, как если бы это был я.
Я также попытался использовать API под названием "Яндекс" -> http://api.yandex.com/rca/ в качестве обходного пути. Но когда я звоню на страницу из Яндекса (которая получит его содержимое), я вижу только информацию, основанную на возвращенной странице входа.
Может ли кто-нибудь дать мне направление для расследования? Я хотел бы иметь возможность получить один элемент на странице веб-сайта, на котором я работаю, но это не представляется возможным.
m_strseedpath = "http://myUrl.com/mypage.html"; //not https
URLConnection connection = new URL("http://rca.yandex.com/?key={MyActualKeyNotThisText}&url=" + m_strSeedUrlPath + "").openConnection();
connection.setRequestProperty("Accept-Charset", "UTF-8");
InputStream response = connection.getInputStream();
StringWriter writer = new StringWriter();
IOUtils.copy(response, writer, "UTF-8");
String strString = writer.toString();
System.out.println(strString);
2 ответа
Объект URLConnection подключится к странице, но в другом сеансе. Вы должны были бы программно войти в систему с вашего Java-кода.
Создайте объект URLConnection на странице входа в систему, отправьте имя пользователя и пароль, получите содержимое, получающее InputStream от объекта URLConnection, и, наконец, создайте новое соединение со страницей, которую вы хотите проанализировать. Вам также нужно работать с куки, чтобы просматривать вторую страницу.
Надеюсь это поможет!
URL, к которому вы пытаетесь получить доступ, имеет ограниченный доступ через логин. Даже если вы вошли в систему через браузер, вы не сможете получить доступ к странице из вашего Java-приложения, поскольку в браузере есть сеанс аутентификации с целевым веб-сайтом. Тот же сеанс не виден вашему приложению Java.
Вам нужно будет изучить способы входа на сайт, а затем получить содержимое страницы.