如何使用Jsoup将数据发布到网站

2022-09-01 15:51:21

我正在尝试将数据发布到网站以使用Jsoup登录网站,但它不起作用?

我正在尝试代码

    Document docs = Jsoup.connect("http://some.com/login")
        .data("cmd", "login","username", "xxxx","password", "yyyyy")
        .referrer("http://some.com/login/").post();

在这里,它在页面源中给出了正常的登录页面

我也试过代码

 Document docs = (Document) Jsoup.connect("http://some.com/login")
    .data("cmd", "login","username", "xxxx","password", "yyyyy")
    .referrer("http://some.com/login/").method(Method.POST).execute().parse();

在这里,它也在页面源中再次提供正常的登录页面。

任何关于相同的建议将不胜感激!

谢谢。。。。


答案 1

我将通过举个例子来回答你的问题。假设你想登录脸书。

然后,除了用户名和密码之外,还有许多其他参数也通过请求传递。这些参数都是隐藏的,并且像用户名和密码一样以类似的方式传递。例如:POST

如果您打开 Facebook 的 ,那么您可以看到有一个隐藏的参数是,其值为 。html sourcelgnrnd071129_5D7M

所以还有很多其他类似的参数。您需要传递所有参数。您还应该指定userAgent.

Document doc = Jsoup.connect("http://www.facebook.com")
.data("email", "myemailid")
.data("pass", "mypassword")
// and other hidden fields which are being passed in post request.
.userAgent("Mozilla")
.post();
System.out.println(doc); // will print html source of homepage of facebook.

答案 2

如果问题是javascript重定向,您可以尝试进入javascript并检查它重定向到的URL是否是静态的,然后使用重定向来获取访问权限。我这样做是为了访问一次由javascript制作的弹出框。