我正在尝试登录this website 这是我到目前为止所尝试的内容,但它似乎不起作用:
try{
Connection.Response login = Jsoup.connect("login_url").method(Connection.Method.GET).execute(
Connection.Response doc = Jsoup.connect("https://ecampus.psgtech.ac.in/studzone/")
.data("Txtstudid","id")
.data("TxtPasswd","password")
.data("btnlogin","Login")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0")
.method(Connection.Method.POST).execute(); //doesn't seem to work.
Document docs=Jsoup.connect("https://ecampus.psgtech.ac.in/studzone/AttWfPercView.aspx/") //after login
.cookies(doc.cookies())
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0").get();
test=docs.title();
}catch (IOException e){
test=e.getMessage();
}
out.setText(docs.title());
我做错了什么?
修改1 最后在TDG的帮助下我发现了这个缺陷。
对于寻求此解决方案的用户,实际问题是您没有传递足够的数据来登录。
第1步:转到Chrome加载页面,选项>工具>开发人员工具
第2步:在控制台类型中 $("输入&#34) 这将返回表单中所需的所有输入 第3步:将数据附加到您的响应中。
Jsoup.connect("login_url")
.data("username","user")
.data("password","password")
.data("btnlogin","Login")
.data("id_of_the_data_required","value")
.data("...and so on like this...)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0")
.method(Connection.Method.POST).execute();
第4步:抓取网页的HTML代码,找出是否必须使用 POST 或 GET 方法,并建议使用userAgent。
步骤5:一旦您发现登录事件成功。使用Response_name。 cookies()去页面中的其他网址。
希望这有帮助。