为什么evaluateJavaScript只能运行一次?

时间:2012-02-18 05:09:00

标签: qt4 webkit pyqt web-crawler qtwebkit

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

public slots:

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

点击后,mainFrame应该将新网址加载到下一个网页(其中包含我要抓取的图片)。但我发现它仅适用于第一次时间。第一次单击后,第二次单击没有导致新的URL加载。网页的js脚本已经加载,只加载一次。

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

2 个答案:

答案 0 :(得分:1)

我有类似的东西,但它不仅可以工作一次,它只能在每次呼叫时工作。

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

强制失败(在函数外返回),下一次调用将按预期工作。

我不知道这次失败的呼叫是否会重置发动机或真正发生的事情。

答案 1 :(得分:1)

不知道是否重要,但是你在陈述结束时遗漏了一个分号?