1

私は.aspxサイトをスクレイピングしようとしていますが、これは本質的に、ここにある行に沿った大きなページ付けされたテーブルです: http://data.fingal.ie/ViewDataSets/ (注、私がスクレイピングしている実際のサイトはペイウォールの背後にあるため、実際のリンクを投稿することはできません)。

ただし、問題は、テーブルの各ページが一意の URL を持つのではなく、テーブル自体に投稿してからテーブル内のコンテンツを更新することによってページを変更することです。

ボタンは次のnext pageようになります。

</td>
<td class="dxpButton" onclick="aspxGVPagerOnClick('ctl00_cphProduct_gvList','PBN');" style="cursor:pointer;">
<img class="dxWeb_pNext" src="/DXR.axd?r=1_5-BUdv6" alt="Next" /></td><td style="width:4px;"><div style="height:1px;width:4px;overflow:hidden;">

を使用してこのボタンのクリックをシミュレートするにはどうすればよいHtmlUnitですか?

4

1 に答える 1

3

を見つけたいと思うでしょう<div class="dxpButton">。これを行う最も簡単な方法は、xPath を使用することです。

final WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://<<YOUR URL HERE>>");

final HtmlDivision div = page.getFirstByXPath("//div[@class='dpxButton']");
page = div.click(); 
// This returns the page shown after the click

これにより、クリックが実行されます。AJAX を介してロードされると仮定します。その場合は、次を使用することをお勧めします。

while(some new element doesn't exist; or some 'completed' condition) {
    // Wait for javascript to catch up.
    webClient. waitForBackgroundJavaScript(1000);
}
于 2013-04-11T01:35:32.427 に答える