【问题标题】:Jsoup cookie authentication from cookiesyncmanager to scrape from https site来自 cookiesyncmanager 的 Jsoup cookie 身份验证从 https 站点抓取
【发布时间】:2012-09-05 20:58:44
【问题描述】:

我有一个使用 webview 的 android 应用程序,用户必须使用用户名和密码登录,然后才能重定向到我想用 jsoup 刮取数据的页面。由于 jsoup 线程将是一个不同的会话,因此用户必须再次登录。

现在我想使用从 webview 收到的 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));

【问题讨论】:

    标签: android cookies webview jsoup scrape


    【解决方案1】:

    不是一个安卓开发者,但也许你可以试试这样的:

    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();
    
    // ...
    

    我希望这会有所帮助,但正如我之前所说:我不是安卓开发者(并且代码没有经过测试!)

    这里有一些文档:

    【讨论】:

    • 谢谢。对我来说,这是一个不错的开始! :) 我回家后会尝试并在这里回复您!
    • 喂。万分感谢你!!!!!!这完全像它应该的那样工作!!!!!!我希望这对其他人也有很大帮助!
    猜你喜欢
    • 2011-11-23
    • 2011-10-31
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2014-07-28
    相关资源
    最近更新 更多