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

无法登录Jsoup的网站,

郑卜鹰
2023-03-14

我正在尝试使用jsoup登录一个网站,我很确定我正在解析所有需要解析的东西,我只是不知道出了什么问题。

我用这个做参考:http://cs.harding.edu/fmccown/android/Logging-into-Pipeline.pdf

以下是我的AsycntTask doInBackground中的代码:

            Connection.Response loginForm = Jsoup.connect(url)
                    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .referrer("http://www.google.com")
                    .method(Connection.Method.GET)
                    .timeout(10000)
                    .execute();

            Document doc = loginForm.parse();

            //Random values you need to parse to lectio
            String VIEWSTATEXvalue = doc.select("input[name=__VIEWSTATEX").attr("value");
            String EVENTVALIDATIONvalue = doc.select("input[name=__EVENTVALIDATION").attr("value");

            Log.v("MainActivity",VIEWSTATEXvalue + EVENTVALIDATIONvalue);



            doc = Jsoup.connect(url)
                    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .referrer("http://www.google.com")
                    .data("m$Content$username2", username)
                    .data("m$Content$password2", password)
                    .data("__VIEWSTATEX",VIEWSTATEXvalue)
                    .data("__EVENTVALIDATION",EVENTVALIDATIONvalue)
                    .data("__EVENTTARGET","m$Content$submitbtn2")

                    .cookies(loginForm.cookies())
                    .post();
            Log.v("MainActivity", doc.toString());

但问题是,当我登录时,它不包含页面的文档,它包含一个错误页面的文档,该页面只显示“出了问题”。

我猜这是因为我没有解析所有的参数

这是我尝试登录的页面:https://www.lectio.dk/lectio/11/login.aspx?lecafdeling=4733693054

看了一些提交的表格后,我发现:

//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
    theForm.__EVENTTARGET.value = eventTarget;
    theForm.__EVENTARGUMENT.value = eventArgument;
    theForm.submit();
}
}
//]]>

但我不知道如何解析这些的正确值

共有2个答案

裴昕
2023-03-14

我不得不用

String EVENTVARGUMENTvalue = doc.select("input[name=__EVENTARGUMENT").attr("value");
司徒英卓
2023-03-14

查看浏览器发送内容的更简单方法是检查原始超文本传输协议请求,然后复制标题。您可以通过按F12打开开发工具来Chrome。选择Network。左上角有一颗子弹。将其悬停,它将显示记录网络日志。这一定是红色的。如果不是按它。这将记录您将发送的请求的所有流量。您将在下面的表格上显示一些行。按method排序,选择值为POST的行(按列Name的值)。这是您正在发送的实际请求。在右侧面板上选择Headers。检查请求标头和表单数据。检查所有这些值是否相同。这将有助于你硬编码一些你缺少的值。

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

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

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

  • 因此,我已经阅读了所有关于创建会话和自动登录的jsoup文章。阅读有关cookie问题的问题。因此,使用所有这些示例,我创建了一些JAVA代码来登录到特定站点。但每次我登录或尝试登录时,我都会被重定向回登录页面。 使用loginForm我获得所需的cookie 然后我使用Forms操作URL发布我的登录信息 然后我应该登录,但它是重新定向到登录。我可以在loginDoc对象解析中看到这一点。 问题

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

  • 我怎样才能实现下面的请求通过使用J汤? POST/login/user HTTP/1.1 主机:url。出版报纸。co.il 缓存控制:无缓存内容类型:应用程序/x-www-form-urlencoded 用户名=只读 我尝试了以下代码,但它不工作,我得到一个错误的网站 未收到预期的安全令牌 我正在使用以下代码: 我知道,当我使用时,我需要在URL中对其进行编码,但假设当我设置正确的头JSOUP时