用java获取网页的实际文本响应

用java获取网页的实际文本响应,java,http,yandex,yandex-api,Java,Http,Yandex,Yandex Api,我正在使用java,试图获取网站的内容,以便分析页面上的文本,但是每次我从服务器“获得”响应时,我看到的都是登录页面,而不是网站页面 我在所有浏览器上都登录了该网站,但我的应用程序无法像看到我一样看到该页面 我还尝试使用一个名为“Yandex”的API--> 作为一种工作方法。但是当我从Yandex调用该页面时(该页面将获取其内容),我只看到基于返回的登录页面的信息 谁能给我一个调查的方向吗?我希望能够在我工作的网站页面上获得一个项目,但这似乎是不可能的 m_strseedpath = "htt

我正在使用java,试图获取网站的内容,以便分析页面上的文本,但是每次我从服务器“获得”响应时,我看到的都是登录页面,而不是网站页面

我在所有浏览器上都登录了该网站,但我的应用程序无法像看到我一样看到该页面

我还尝试使用一个名为“Yandex”的API--> 作为一种工作方法。但是当我从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);

您试图访问的URL通过登录受到访问限制。即使您是通过浏览器登录的,您也无法从Java应用程序访问该页面,因为浏览器与目标网站有经过身份验证的会话。相同的会话对Java应用程序不可见


您必须研究登录到网站然后获取页面内容的方法。

URLConnection对象将连接到页面,但在不同的会话中。您必须通过Java代码编程登录

创建一个到登录页面的URLConnection对象,发布用户名和密码,接收从URLConnection对象获取InputStream的内容,最后创建一个到您希望分析的页面的新连接。您还必须使用cookies才能查看第二页


希望这有帮助

如果我将站点cookie与我的请求一起发送,这会解决问题吗?即使cookie可能是加密的,或者我不确定的,你也得自己去看看。这可能有用。此外,许多浏览器使用sessionId在浏览器和站点之间进行通信,也可以尝试使用sessionId。服务器看到的只是http请求。不管是谁寄的。使用fiddler拦截来自浏览器的请求,并使用Java重播该请求。我必须工作。