2

jsoupでデータを取得したいページにリダイレクトされる前に、ユーザーがユーザー名とパスワードでログインする必要があるWebビューを使用するAndroidアプリケーションがあります。jsoupスレッドは別のセッションになるため、ユーザーは再度ログインする必要があります。

次に、Webビューから受信したCookieを使用して、jsoupリクエストを送信し、データを取得できるようにします。

Cookieは、次のコードでcookiesyncmanagerと同期されています。これは基本的に私が立ち往生している場所です。Cookieを読み取る方法も、jsoupリクエストに添付する方法もわかりません。助けてください?:)

public void onPageFinished(WebView view, String url) {

            CookieSyncManager.getInstance().sync();

ユーザーが次のようなものでログインした後に私が行っているjsoupスクレイプ:

  doc = Jsoup.connect("https://need.authentication.com").get();

                Elements elements = doc.select("span.tabCount");
              Element count = elements.first();


                Log.d(TAG, "test"+(count));
4

1 に答える 1

2

私はAndroid開発者ではありませんが、次のような方法を試すことができます。

final String url = "https://need.authentication.com";


// -- Android Cookie part here --
CookieSyncManager.getInstance().sync();
CookieManager cm = CookieManager.getInstance();

String cookie = cm.getCookie(url); // returns cookie for url

// ...

// -- JSoup part here --
// Jsoup uses cookies as "name/value pairs"
doc = Jsoup.connect("https://need.authentication.com").header("Cookie", cookie).get();

// ...

これが少し役立つことを願っていますが、前に言ったように、Android開発者はいません(そしてコードはテストされていません!)

ここにいくつかのドキュメントがあります:

于 2012-09-12T21:03:04.647 に答える