【问题标题】:Why the evaluateJavaScript works only once?为什么 evaluateJavaScript 只工作一次?
【发布时间】:2012-03-09 11:21:29
【问题描述】:

我正在编写一个爬虫来爬取图像,它需要以编程方式单击一个菜单才能转到下一页。每当页面完成加载时,这是我的代码:

public slots:

void nextPage()
{
    mainFrame()->evaluateJavaScript("readweb.nextPage()");
}

点击后,mainFrame 应该加载一个指向下一个网页的新 url(其中包含我要抓取的图像)。但我发现它只适用于第一次。第一次点击后,第二次点击并没有导致新的url加载。网页的js脚本已经加载,只加载一次。

为什么它不起作用?有人有类似情况吗?

【问题讨论】:

    标签: qt4 webkit pyqt web-crawler qtwebkit


    【解决方案1】:

    我有类似的东西,但它不仅工作一次,而且每隔一个电话就工作一次。

    我现在的解决方法是假电话,例如:webframe.evaluateJavaScript('return true;')

    这会强制失败(返回函数外),并且下一次调用将正常工作。

    我不知道这个失败的调用是否会重置引擎或者会发生什么。

    【讨论】:

      【解决方案2】:

      不知道这是否重要,但您的语句末尾缺少分号?

      【讨论】:

        猜你喜欢
        • 2013-12-31
        • 2011-04-07
        • 1970-01-01
        • 1970-01-01
        • 2012-09-21
        • 2019-10-08
        • 2017-05-29
        • 2021-03-30
        • 1970-01-01
        相关资源
        最近更新 更多