除了
username,
password并且
cookies,该网站requeires为登录两个额外的价值-
VIEWSTATE和
EVENTVALIDATION。
您可以从第一个
Get请求的响应中获取它们,如下所示-
document doc = loginForm.parse();Element e = doc.select("input[id=__VIEWSTATE]").first();String viewState = e.attr("value");e = doc.select("input[id=__EVENTVALIDATION]").first();String eventValidation = e.attr("value");并将其添加到
password(顺序并不重要)之后-
org.jsoup.nodes.document document = (org.jsoup.nodes.document) Jsoup.connect("https://www.capitaliq.com/CIQDotNet/Login.aspx/authentication.php").userAgent("Mozilla/5.0") .data("myLogin$myUsername", "MyUsername") .data("myLogin$myPassword, "MyPassword") .data("myLogin$myLoginButton.x", "22") .data("myLogin$myLoginButton.y", "8") .data("__VIEWSTATE", viewState) .data("__EVENTVALIDATION", eventValidation) .cookies(loginForm.cookies()) .post();我还将
userAgent字段添加到两个请求中-
一些站点对其进行测试并将不同的页面发送到不同的客户端,因此,如果您希望获得与浏览器相同的响应,请添加到请求中
.userAgent("Mozilla/5.0")(或您使用的任何浏览器中)使用)。编辑
本
userName的字段名
myLogin$myUsername,密码
myLogin$myPassword和
Post请求还包含有关登录按钮数据。我无法对其进行测试,因为我在该站点上没有用户,但是我相信它会起作用。希望这能解决您的问题。
编辑2
要
remember me在登录期间启用该字段,请将此行添加到
post请求中:
.data("myLogin$myEnableAutoLogin", "on")


