今週、私は宿題を始め、このフォーラムを読んで、私の問題の「解決策」を見つけました。私のプログラムは、Web サイトの HTML ページを解析し、いくつかのデータを取得します。これは難しいことではありません。私の問題は、ウェブサイトでデータを取得する方法です。HtmlUnit を使用して、それが可能であることを知っており、チュートリアルと Web 上のいくつかのコードを読んで、簡単なテストを作成しました。
import org.junit.Test;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
public class MyTest {
@Test
public void myClient() throws Exception {
final WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.atb.bergamo.it/ITA/Default.aspx?SEZ=2&PAG=38&MOD=LINTRV");
final HtmlForm form = page.getFormByName("form1");
final HtmlSubmitInput filtra = form.getInputByName("ctl13$btnFilter");
page = filtra.click();
final String pageAsXml = page.asXml();
System.out.println(pageAsXml);
webClient.closeAllWindows();
}
}
このコードは、リモート ページを取得し、ページのフォームで送信ボタンをクリックしてから、送信結果をコンソールに出力します。
問題は、Web ページで何も変更されないため、クリック イベントを使用する場合です。実際、収集したいデータを含む新しいテーブルが表示される必要がありますが、そうではありません。
どこが間違っているのか教えてください。
私がやりたいことを行う別の方法を知っていますか?