0
我試圖從marinetraffic.com webscrape數據。這是一個非常簡單的表格:如何檢測表單提交工作htmlunit
<form enctype="multipart/form-data" id="login_form_REACT" class="text-left ws-validate" role="form" accept-charset="utf-8">
<div style="display: none;">
<input type="hidden" name="_method" value="POST">
</div>
<div class="form-group">
...
<input type="email" id="email" class="form-control" required="" placeholder="Email" name="data[email]">
...
<input type="password" id="password" class="form-control user-error" required="" placeholder="Password" name="data[password]">
...
<input type="checkbox" name="data[remember]" id="remember2" value="1">
...
<button type="submit" class="btn btn-lg btn-block btn-primary vertical-offset-10 btn btn-default">Sign in</button>
</div>
</form>
我到目前爲止有:
String username = "[email protected]";
String password = "fake_password";
WebClient client = new WebClient(BrowserVersion.CHROME);
client.getOptions().setThrowExceptionOnScriptError(false);
client.setAjaxController(new NicelyResynchronizingAjaxController());
HtmlPage webPage = (HtmlPage)client.getPage("https://www.marinetraffic.com/");
HtmlForm loginForm = (HtmlForm)webPage.getElementById("login_form_REACT");
loginForm.getInputByName("data[email]").setValueAttribute(username);
loginForm.getInputByName("data[password]").setValueAttribute(password);
((HtmlButton)loginForm.getFirstByXPath("//button[@type='submit']")).click();
我打印生成的網頁,這是一樣的網頁,但填好了表單我不是。確定如何通過點擊按鈕來測試發佈請求是否已經結束。
有沒有什麼辦法可以用HtmlUnit檢測傳出的HTTP請求?或者爲什麼這個網頁不讓我登錄?不確定這是否是相關信息,但MarineTraffic在登錄期間進行頁面刷新而不是頁面重定向。
我正在做對嗎?我正在關注[this](https://hc.apache.org/httpcomponents-client-ga/logging.html),並且我將這些參數複製並粘貼到JVM運行設置中。我只打開了我想要測試的代碼行,但唯一的事情是打印**警告:遇到過時的內容類型:'application/x-javascript'**。 –