我正在尝试登录这个网站.
这是我到目前为止所尝试过的,但它似乎不起作用:
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());
我究竟做错了什么?
Edit 1最后在 TDG 的帮助下我发现了这个缺陷。
对于寻求解决方案的用户来说,实际问题是您没有传递足够的数据来登录。
第 1 步:转到 Chrome 加载页面,然后,选项>工具>开发者工具
第 2 步:在控制台中输入
$(“输入”)
这将返回表单中所需的所有输入
第 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();
STEP 4:爬取网页的html代码,看看是否必须使用POST or GET方法,推荐使用userAgent。
第5步:一旦您发现登录事件成功。使用 Response_name。 cookies() 来访问页面中的其他网址。
希望这可以帮助。