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 回答