gpt4 book ai didi

java - Jsoup如何登录HTTPS网站?

转载 作者:行者123 更新时间:2023-11-30 07:00:48 25 4
gpt4 key购买 nike

我最近对网络爬虫很感兴趣,决定试试 Jsoup。不过,我不确定如何使用它登录网站。我看到了另一篇关于它的 SO 帖子,但无法拼凑出如何去做。

我一直在尝试在网站 www.tickld.com 上四处爬行,登录网站是“https://www.tickld.com/signin”。

我不确定我是否正确使用了 Jsoup(我确定这是主要原因),如果错误是 .jks,或者我是否输入了错误的信息,我没有真正了解如何测试代码的哪一部分失败了。

        System.setProperty("javax.net.ssl.trustStore", "filePath\\keystore.jks");

Connection.Response loginForm = Jsoup.connect("https://www.tickld.com/signin")
.method(Connection.Method.GET).execute();

Document document = Jsoup.connect("https://www.tickld.com/signing")
.data("l_username", "myUsername")
.data("l_password", "myPassword")
.cookies(loginForm.cookies())
.post();

但无论我在做什么,它都没有登录该站点,它只是将我带到登录页面。

最佳答案

登录由 ajax 处理。我正在使用 chrome,所以这就是我所做的。尝试通过浏览器中的表单登录。按 F12,然后按控制台。您将看到类似这样的内容 XHR finished loading: POST "https://www.tickld.com/ajax/login.php". 。当您发出 POST 请求时,您将其发送到放置在 form 标记的 action 参数中的 url。在这种情况下,不存在这样的 url,因为它是由 javascript 处理的。

试试这个,看看它是否有效。

Document document = Jsoup.connect("https://www.tickld.com/ajax/login.php")
.data("l_username", "myUsername")
.data("l_password", "myPassword")
.cookies(loginForm.cookies())
.post();

如果没有,那么您可能需要使用一些 headless 浏览器(可以处理 js 执行),例如 selenium webdriver。

更新

Connection.Response login = Jsoup.connect("https://www.tickld.com/signin")
.data("l_username", "myUsername")
.data("l_password", "myPassword")
.method(Connection.Method.POST)
.execute();

Document document = Jsoup.connect("http://www.tickld.com/user/chosimbaaaa")
.cookies(login.cookies())
.get();

关于java - Jsoup如何登录HTTPS网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30268309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com