0

我正在使用 crawler4j 为 Tripadvisor 编写爬虫。我需要收集一个项目的所有评论,但指向“下一个”评论的链接(带有数字的评论)关联的不是链接,而是 javascript 函数。此功能在 Tripadvisor 服务器的某处定义。有没有办法评估这些函数并获取它们返回的页面?

4

2 回答 2

0

您可以使用 HTMLUnit 来获取页面内容。该库可用于运行所有 javascript 代码,然后获取要操作的页面代码。

这是一个示例代码,取自 stackoverflow 上的一个问题。

    HtmlElement element4 = null;
Iterable<HtmlElement> iterable5 = page.getAllHtmlChildElements();
Iterator<HtmlElement> i6 = iterable5.iterator();
while(i6.hasNext() {
    HtmlElement anElement = i6.next();
        if(anElement instanceof HtmlImage) {
        HtmlImage input = (HtmlImage) anElement;
        String[] elements = "http://example.com/pages/powerbutton.png".split( "/" );

        if(input.getSrcAttribute().indexOf(elements[elements.length-1] )> -1 ){
            element4 = input;
            break;
        }
    }
} 
HtmlPage page = element4.click();
于 2013-02-07T13:09:24.140 回答
0

你试过eval吗?或者如果您需要更改调用者上下文,请致电。

eval 将字符串作为输入并尝试执行它。

于 2012-06-27T10:51:48.707 回答