首页 > 解决方案 > 如何使用 Jsoup 登录 ASPX 网站

问题描述

我一直在尝试使用 Jsoup 爬虫登录到一个 aspx 网站,到目前为止我发现的所有内容都与表单有关,但是这里的这个 aspx 网站没有任何表单。我该怎么做呢?

这是我到目前为止所拥有的:

Connection.Response loginForm = Jsoup.connect(LOGARUN_URL)      
            .method(Connection.Method.GET)
            .execute();

    Connection.Response currentPage = Jsoup.connect(LOGIN_FORM_URL)
            .data("LoginName", USERNAME)
            .data("Password", PASSWORD)
            .cookies(loginForm.cookies())   
            .method(Connection.Method.POST)  
            .userAgent(USER_AGENT)  
            .execute();
    System.out.println(currentPage.parse().html());

标签: javahtmlweb-crawlerjsoup

解决方案


经过一番挖掘,我在这里找到了答案。

下面提供了一个简短的摘要:

第 1 步:进入您要登录的页面并使用 Chrome 开发者控制台(选项>工具>开发者工具)并输入 $("input")

第 2 步:获取名称和值并将其添加到您以前的 .data

第 3 步:转到页面源并查找并添加任何其他需要的数据及其值

之后你应该完成它应该看起来像这样

Connection.Response currentPage = Jsoup.connect(LOGIN_FORM_URL)
            .data("LoginName", USERNAME)
            .data("Password", PASSWORD)
            .data("SubmitLogon", "true")
            .userAgent(USER_AGENT)                
            .data("input[name=__VIEWSTATE]","/wEPDwULLTE5NTUyNzc3NDhkZC7w9zeYDbAWpWTaWlQFzEFw15ln")
            .data("input[name=__VIEWSTATEGENERATOR]","5A2128B1")
            .cookies(loginForm.cookies())   
            .method(Connection.Method.POST)
            .execute();

推荐阅读