cookies - 使用 Jsoup 登录 Cookie?

标签 cookies authentication jsoup

对于一个项目,我试图从仅当您从 Goodreads.com 网站登录时才能访问的网站获取数据。我是 Jsoup 的新手,因为我只将它用于这个特定的项目。从网站获取相关数据不是问题,但我似乎无法访问我需要的特定页面。我尝试访问的页面仅在登录时才可见,未登录时会重定向到登录页面。

我已经查看了这里的答案,但到目前为止给出的答案没有帮助。

我现在拥有的:

String url = "http://www.goodreads.com/friend/user/7493379-judith";
Connection.Response res = Jsoup.connect("http://www.goodreads.com/user/sign_in")
            .data("email", "MYEMAIL", "user_password", "MYPASSWORD")
            .method(Connection.Method.POST)
            .execute();

        Document doc2 = res.parse();
        String sessionId = res.cookie("_session_id"); 


    Document doc = Jsoup.connect(url)
            .cookie("_session_id", sessionId)
            .get();

我在此处答案的帮助下得到了到目前为止,但它不起作用,我仍然只是从它重定向到的登录页面获取数据。 我有几个问题:

  1. 当然最重要的是;我怎样才能让它发挥作用?
  2. 此处给出的答案使用了 method.(Method.POST) 而不是 method.(Connection.Method.POST) 。然而,当我使用第一个时,我收到一个错误,指出方法无法解析。有谁知道这是为什么吗?
  3. 我见过的示例在 .data() 中使用了“用户名”和“密码”。这些具体指的是什么?我现在已经使用了输入框的名称。是名称、类型、id 还是什么?由于 Goodreads 并不将登录称为用户名,而是将其称为电子邮件,因此我认为我必须更改它们。 (用户名和密码也不起作用)
  4. 示例还使用 http://example.com/login.php作为示例网址。不过 Goodreads 没有/login.php 页面。我是否正确地假设我必须在登录屏幕上使用该网址?
  5. _session_id 是 Goodreads 上相关 Cookie 的名称。

如果有人能指出我正确的方向,我将非常感激!

最佳答案

  1. 仔细查看登录时发布的数据:

    user[email]:email@email

    remember_me:on

    user[password]:plain_pasword

    n:667387

因此您的帖子必须执行完全相同的键。

2.确保正确导入:import org.jsoup.Connection.Method; 但 Connection.Method.POST 仍然很好。

3.参见第1页

4.是的,你是对的

5.问题是什么?

关于cookies - 使用 Jsoup 登录 Cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9890928/

相关文章:

javascript - 通过 JavaScript 编写 cookie

c# - ASP.NET 登录控件,使用电子邮件登录但电子邮件不是用户名(如何)?

java - Jsoup Java HTML 解析器 : Executing Javascript events

asp.net - 通过 HTTPS 在 ASP.NET 中保护 session cookie

python - 使用 Flask 更新 HTML 字段

javascript - 如何将类(class)编号添加到与cookie编号相同的div

ruby - 使用 Ruby 安全地将密码发送到网站

python 请求登录认证

java - Jsoup 元素最多 20 个条目

java - 选择元素 Jsoup 最里面的子元素