github上的HTMLUnit登录-无法识别表单ID

奥列克桑德·古布琴科

我正在尝试编写Java应用程序,我的主要范围是登录网站并解析一些数据。我选择使用htmlunit和jsoup。我一开始就陷入困境。在尝试在https://github.com/login页面上查找表单ID并将其放入htmlunit代码并继续登录时,该页面的源代码如下:

<form accept-charset="UTF-8" action="/session" data-form-nonce="39175dde4169cc3f2ad998cac114a63525a17f3f" method="post">

表单没有ID,因此htmlunit如何识别它?

可能发布一个代码示例。

谢谢。

弗雷德里克·克莱恩(Frederic Klein)

github登录页面上只有一种形式,因此在这里识别并不是真正的问题。如果您想知道如何在不使用的情况下选择元素,则getElementByID可以使用querySelector("...")

范例程式码

WebClient webClient = new WebClient(BrowserVersion.CHROME);

String url = "https://github.com/login";

webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);

HtmlPage page = webClient.getPage(url);
DomElement form = (DomElement) page.querySelector("form");

System.out.println(form.asXml());

webClient.close();

输出

<form accept-charset="UTF-8" action="/session" data-form-nonce="0cd9f59e177729dbfe5a1b275514fdcc21be8c84" method="post">
  <div style="margin:0;padding:0;display:inline">
    <input name="utf8" type="hidden" value="✓"/>
    <input name="authenticity_token" type="hidden" value="3rrjjZbyJ6n310XnDR9mXCi5pJ6OsA+HvLJ0oem8k/XHj37Sd26GXxG7IQk5tcbDnPQnE7WvIjNgU77428iajw=="/>
  </div>
  <div class="auth-form-header p-0">
    <h1>
      Sign in to GitHub
    </h1>
  </div>
  <div id="js-flash-container">
  </div>
  <div class="auth-form-body mt-3">
    <label for="login_field">

          Username or email address

    </label>
    <input autocapitalize="off" autocorrect="off" autofocus="autofocus" class="form-control input-block" id="login_field" name="login" tabindex="1" type="text"/>
    <label for="password">

          Password 
      <a href="/password_reset" class="label-link">
        Forgot password?
      </a>
    </label>
    <input class="form-control form-control input-block" id="password" name="password" tabindex="2" type="password"/>
    <input class="btn btn-primary btn-block" data-disable-with="Signing in…" name="commit" tabindex="3" type="submit" value="Sign in"/>
  </div>
</form>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章