2

可能重复:
Webkit GTK:确定文档何时完成加载

我想使用 WebKitGTK+ 获取网站的 HTML 内容以自动处理 javascript 重定向。

我正在使用以下 Python 代码:

def scanURL(domain, retries=3):
    status = 0
    loading = 0

    browser = webkit.WebView()
    browser.open('http://' + domain)
    while browser.get_load_status() < 2:
        continue

    if browser.get_load_status() == 4:
        if retries > 0:
            return scanURL(domain, retries - 1)
        return 'Failed'

    return 'Success'

该网站加载正常,但是有一些特殊的网站正在重定向到重定向到其他地方的网页,我试图将load-finished事件连接到一个函数,它被调用了两次。

有没有办法知道 WebKit 何时完全加载了网页?

我如何知道 WebKit 是否仍在执行一些 JavaScript 代码?

4

1 回答 1

2

没有确定的方法可以为所有网站以编程方式完成该任务,因为有些页面使用 javascript 启动这些重定向,通常在 n 秒后由setTimeout启动,并且没有内置方法来扫描此类“怪癖” . 但是,如果您正在解析一组已知的网站,并且您肯定知道会发生此类重定向,您可以创建一个包含所需秒数的这些 url 列表,然后重定向将发生。触发初始 loadFinished 后,您可以启动 QTimer,将其信号连接到将再次触发 loadFinished 的函数,因此在您等待结果时肯定会开始下一个页面加载。等待页面结果,直到没有新的 loadStarted 信号被触发并且不需要再次进行重定向。

于 2012-10-18T16:55:00.983 回答