java - 使用java jsoup登录不起作用

标签 java authentication jsoup scraper

在尝试了不同的教程并阅读了很多帖子之后,我仍然无法使用 jsoup 登录网站。

这是我的代码

        Connection.Response response =  Jsoup.connect("https://www.ivolatility.com/login.j")
                .method(Connection.Method.GET)
                .execute();

        response = Jsoup.connect("https://www.ivolatility.com/login.j")
                .data("username", username)
                .data("password", password)
                .cookies(response.cookies())
                .method(Connection.Method.POST)
                .execute();

        Document homePage = Jsoup.connect("http://www.ivolatility.com/options.j")
                .cookies(response.cookies())
                .get();

最佳答案

检查浏览器发送的post请求(使用浏览器的开发人员工具) - 它会发送一些您未发送的额外参数。将它们添加到您的帐户中:

response = Jsoup.connect("https://www.ivolatility.com/login.j")
            .data("username", username)                
            .data("ref_url", "")
            .data("service_name", "")
            .data("step", "1")
            .data("login__is__sent", "1")
            .data("password", password) 
            .cookies(response.cookies())
            .method(Connection.Method.POST)
            .execute();

将浏览器的用户代理字符串添加到请求中也是明智的,因为您的程序可能会发送自己的字符串,从而导致浏览器产生完全不同的响应。

关于java - 使用java jsoup登录不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45436798/

相关文章:

java - jsoup:解析特定标签之后的特定标签的数据

安卓分割标签

javascript - 使用 Meteor 设置公司范围的帐户

r - 将文件复制到 R 中的共享点库

java - 使用jsoup解析网站数据

java - 在没有 WEB-INF 文件夹的实用程序 jar 中放置 i18n 文件的位置

linux - 如何排除特定用户在非事件天数后不被锁定

java - HQL不提取空字段的结果

java - Java项目中的DSL-Json太慢

java - 定义dom中属性的顺序