当前位置: 首页 > 面试题库 >

使用jsoup登录网站

纪翰
2023-03-14
问题内容

在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用,

        String url = "http://kortladdning3.chalmerskonferens.se/CardLoad_Order.aspx";



        Connection.Response loginForm = Jsoup.connect(url)
                .method(Connection.Method.GET)
                .execute();

        Document document = Jsoup.connect(url)
                .userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36")               
                 //.data("__VIEWSTATE","%2FwEPDwUHNjA4NDA1NQ9kFgQCAw9kFgoCAQ9kFgICAQ8PFgIeBFRleHQFClBUTSBLb3J0bnJkZAICDxYCHgdWaXNpYmxlaGQCAw8WAh8BaGQCBA8WAh8BaGQCBQ8WAh8BaBYCAgEPEGRkFgBkAgUPDxYCHwAFCShkZXNrdG9wKWRkZGzBhwMIv3yxqKnC0C7%2BPlC0PlDG")
                .data("__EVENTVALIDATION", "%2FwEWBAKG7bXPBQLi0uqnCgKF69rWBAK14fOOCgrUt4CBVP4K0VKe0uOPxLSAu26y")
                .data("hiddenIsMobile", "desktop")
                .data("txtCardNumber", "3819276248xxxxxx")
                .data("SavedCardNumber", "")
                .data("btnNext","N%C3%A4sta")
                .cookies(loginForm.cookies())
                .get();


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

我没有太多经验,所以我不知道在哪里寻找问题。一些想法:

  • 我应该使用.post()还是.get()
  • 在使用chrome devoloper工具时,发布数据是我使用.data(.., ..)功能发送的所有数据。但是,如果发送时__VIEWSTATE出现错误,为什么?
  • 我应该发送解密或加密的数据吗?(两者均在chrome devoloper工具中提供)。
  • 使用的网址正确吗?

问题答案:

你应该同时使用getpost
首先你要发送get不带参数的请求URL-
http://kortladdning3.chalmerskonferens.se/Default.aspx。服务器回复一些cookie,以及稍后将使用的两个值-
__VIEWSTATE__EVENTVALIDATION。这些值因请求而异,因此您不能像以前那样使用硬编码的值。
提取这些值后post,使用与您现在相同的字段发送请求。




 类似资料:
  • 我试图登录使用领英J汤,我已经尝试了几种方法,但总是遇到错误403,我哪里出错了? 测试一 错误控制台 组织。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=403,URL=https://www.linkedin.com在org。jsoup。帮手HttpConnection$响应。在org上执行(HttpConnection.java:590)。jsoup

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

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

  • 问题内容: 如何通过jsoup登录? 我试过了,但是不起作用: 问题答案: 通常,登录网站需要两个步骤- 您发送请求以获取页面,然后从中提取一些值,例如会话ID等以及cookie。 您发送带有第1步中的值以及您的用户名和密码的请求。 要知道您需要发送哪些值,请在开发人员模式下使用浏览器(按F12键)并检查流量。更改字符串以匹配您的浏览器,因为某些站点将不同的页面发送到不同的客户端。

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

  • 阅读了一些例子后,我想实现一个爬虫的帮助转移与登录,如: https://target.helpshift.com/login/?next=/admin/issues/ 但是,我得到这个错误: 线程“main”组织中出现异常。jsoup。HttpStatusException:获取URL时发生HTTP错误。状态=403,URL=https://target.helpshift.com/login/