由JavaScript函数生成的HtmlUnit加载页面

时间:2018-06-17 12:47:47

标签: javascript java web-scraping htmlunit

我每次点击链接时都需要从网站上获取带有“... / prematch.jsp”网址的数据,网址在“../prematch-manif.jsp”中更改,数据由函数javascript上的不同参数调用,例如:

<span class="left" style="width: 90%;" onclick="openPreviewDetail(1,-499)">
    <a data-toggle="collapse" href="#manifestation-events-box-1" class="left manifestation-event-link" aria-expanded="false">                                    
        <span class="left prematch-left-menu-nation-name">TerceraDivision</span>
    </a>
</span>

如果您单击anchorText,或者从浏览器控制台执行“openPreviewDetail(1,-499)”功能,则网页会更改并加载正确的内容。

这是我的java代码:

 webClient = new WebClient(BrowserVersion.CHROME);
 webClient.getOptions().setJavaScriptEnabled(true);
 webClient.getOptions().setCssEnabled(false);
 page = webClient.getPage("URL HOMEPAGE");
 webClient.waitForBackgroundJavaScript(1000);

 Page newpage = page.executeJavaScript(onclickAttr).getNewPage();
 webClient.waitForBackgroundJavaScript(1000);

但它不起作用,给了我2个错误:

com.gargoylesoftware.htmlunit.ScriptException: Exception invoking setPathname
Caused by: com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "IF_VerificaToken" is not defined. 

其中IF_VerificaToken是网站的JS功能。 我不知道如何,但是不久之前,如果我试图打印:

page.executeJavaScript(onclickAttr).toString()

打印“html(”URL“)@ numbers 我试图在浏览器上粘贴URL @ numbers,然后我继续浏览我需要的页面,但现在不再打印它了。

0 个答案:

没有答案