0

私はJavaを使用していて、ページ上のテキストを分析できるようにWebサイトのコンテンツを取得しようとしていますが、サーバーからの応答を「GET」するたびに、それはWebサイトページではなくログインページからのものです私が見ていること。

私はすべてのブラウザーで Web サイトにログインしていますが、私のアプリケーションはページを自分のように見ることができません。

また、「Yandex」という API を使用しようとしました --> http://api.yandex.com/rca/ を回避策として使用しました。しかし、(コンテンツを取得する) Yandex からページを呼び出すと、返されたログイン ページに基づく情報しか表示されません。

誰か調査の指示をくれませんか? 私が働いている Web サイトのページで 1 つのアイテムを取得できるようにしたいのですが、それは不可能のようです。

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);
4

2 に答える 2

0

URLConnection オブジェクトはページに接続しますが、別のセッションになります。Java コードからプログラムでログインする必要があります。

ログインページへの URLConnection オブジェクトを作成し、ユーザー名とパスワードを POST して、URLConnection オブジェクトから InputStream を取得するコンテンツを受け取り、最後に分析するページへの新しい接続を作成します。2 番目のページを表示するには、Cookie も使用する必要があります。

お役に立てれば!

于 2014-02-26T20:49:23.310 に答える
0

アクセスしようとしている URL は、ログインによってアクセスが制限されています。ブラウザ経由でログインした場合でも、ブラウザにはターゲット Web サイトとの認証済みセッションがあるため、Java アプリケーションからページにアクセスすることはできません。同じセッションは、Java アプリケーションには表示されません。

Web サイトにログインしてページのコンテンツを取得する方法を調査する必要があります。

于 2014-02-26T20:40:03.487 に答える