当前位置: 首页 > 知识库问答 >
问题:

登录网站使用JSoup-Java

从景曜
2023-03-14

我试图登录使用领英J汤,我已经尝试了几种方法,但总是遇到错误403,我哪里出错了?

测试一

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

                Document document = Jsoup.connect("https://www.linkedin.com")
                        .data("login-email", "email")
                        .data("login-password", "password")
                        .cookies(loginForm.cookies())
                        .post();

                System.out.println(document.body().html());

//after you logged in go to this page
 Document pesquisa=Jsoup.connect("https://www.linkedin.com/vsearch/p?locationType=Y&f_N=S%2CO&f_G=br%3A6368&f_I=137&trk=vsrp_savedsearch").get();

错误控制台

组织。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=403,URL=https://www.linkedin.com在org。jsoup。帮手HttpConnection$响应。在org上执行(HttpConnection.java:590)。jsoup。帮手HttpConnection$响应。在org上执行(HttpConnection.java:540)。jsoup。帮手HttpConnection。在org上执行(HttpConnection.java:227)。jsoup。帮手HttpConnection。在linkedin发布(HttpConnection.java:222)。页主页(第27页)

Html页面

<form class="login-form" action="https://www.linkedin.com/uas/login-submit" method="POST" data-autologin="true">
<label for="login-email">E-mail</label>
<input type="text" name="session_key" id="login-email" placeholder="E-mail ou número de telefone" autofocus="autofocus">
<label for="login-password">Senha</label><input type="password" name="session_password" id="login-password" aria-required="true" placeholder="Senha">
<input name="isJsEnabled" type="hidden" value="false">
<input name="loginCsrfParam" id="loginCsrfParam-login" type="hidden" value="1802cd0f-af50-45b8-810c-2ecc3bac3c72">
<input name="trk" id="trk-login" type="hidden" value="nav_responsive_tab_home">
<input name="sourceAlias" id="sourceAlias-login" type="hidden" value="0_7r5yezRXCiA_H0CRD8sf6DhOjTKUNps5xGTqeX8EEoi">
<input type="submit" name="submit" value="Entrar">
</form>

共有1个答案

郑帅
2023-03-14

我决定这样做,速度更快,代码多一点,但很有主见

try {

             String url = "https://www.linkedin.com/uas/login?goback=&trk=hb_signin";
             Connection.Response response = Jsoup
                     .connect(url)
                     .method(Connection.Method.GET)
                     .execute();

             Document responseDocument = response.parse();
             Element loginCsrfParam = responseDocument
                     .select("input[name=loginCsrfParam]")
                     .first();

             response = Jsoup.connect("https://www.linkedin.com/uas/login-submit")
                     .cookies(response.cookies())
                     .data("loginCsrfParam", loginCsrfParam.attr("value"))
                     .data("session_key", "email")
                     .data("session_password", "password")
                     .method(Connection.Method.POST)
                     .followRedirects(true)
                     .execute();

             Document document = response.parse();

             System.out.println("Welcome " 
                     + document.select(".act-set-name-split-link").html());


         } catch (IOException e) {
             e.printStackTrace();
         }
 类似资料:
  • 问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper

  • 问题内容: 使用Jsoup登录网站需要什么?我相信我的代码是正确的,但是我从未使用Jsoup成功登录到网站,因此我可能会丢失一些东西。这是我的代码: 返回一个显示未成功登录的登录页面。有一个名为的输入值,我认为这可能是为什么它不起作用的原因。这个值会随着时间的推移而上升。我运行了两次代码,时间变量返回了和。我的代码需要大约10秒钟的时间来打印文档,因此,变量在发送发布请求时是否已经更改?我不确定这

  • 问题内容: 我已经广泛阅读了有关此操作的信息,并尝试了许多不同的版本,但无法使其正常工作。 基本上,我只想登录ConEdison网站并抓取我的帐单记录。这是我所拥有的: 我知道该信息是正确的(尽管我不知道是否真的需要传递没有值的数据参数)。 我没有任何错误,只是打印了登录页面(https://apps.coned.com/cemyaccount/NonMemberPages/Login.aspx?

  • 我正在尝试使用jsoup登录一个网站,我很确定我正在解析所有需要解析的东西,我只是不知道出了什么问题。 我用这个做参考:http://cs.harding.edu/fmccown/android/Logging-into-Pipeline.pdf 以下是我的AsycntTask doInBackground中的代码: 但问题是,当我登录时,它不包含页面的文档,它包含一个错误页面的文档,该页面只显示

  • 问题内容: 我想用Java登录到一个网站。我使用的是org.apache.http,我已经写了 尽管我仍然无法登录,但它正确发送了我测试过的帖子表格。我要登录的网站是http://www.xtratime.org/forum/ 关于此的任何想法或是否有其他方法? 问题答案: 在提交页面之前,请对密码进行编码()。您应该在代码中执行相同的操作。 该属性的值与您的代码()不匹配。您应该将发布请求发送到

  • 问题内容: 我正在尝试使用Python登录到此页面。 我尝试使用另一篇文章中描述的步骤,并获得了以下代码: 但这给了我以下输出: 我究竟做错了什么? 问题答案: 我建议使用精彩的模块。 下面的代码将使您登录到该站点,并在会话期间将cookie保留下来。