我正在使用java并尝试获取网站的内容,以便我可以分析页面上的文本,但是每次我"获取"来自服务器的响应时,它都来自登录页面而不是我正在查看的网站页面。
我在所有浏览器上都登录了该网站,但我的应用程序无法像我一样看到该页面。
我还尝试使用一个名为"Yandex"的API--> http://api.yandex.com/rca/作为一种解决方法。 但是当我从Yandex调用该页面(它将获得其内容)时,我只能看到基于返回的登录页面的信息。
谁能给我一个调查的方向? 我希望能够在我工作的网站的页面上获得一个项目,但这似乎是不可能的。
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);
URLConnection 对象将连接到页面,但在不同的会话中。您必须以编程方式从 Java 代码登录。
创建一个指向登录页面的 URLConnection 对象,发布用户名和密码,从 URLConnection 对象接收获取输入流的内容,最后创建与要分析的页面的新连接。您还必须使用 cookie 才能查看第二页。
希望这有帮助!
您尝试访问的 URL 已通过登录限制访问。即使您通过浏览器登录,也无法从 Java 应用程序访问该页面,因为浏览器与目标网站具有经过身份验证的会话。同一会话对 Java 应用程序不可见。
您必须研究登录网站然后获取页面内容的方法。