Python 等待网站完全加载WebKitGTK+;

Python 等待网站完全加载WebKitGTK+;,python,webkit,python-2.7,webkitgtk,Python,Webkit,Python 2.7,Webkitgtk,可能重复: 我想使用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:

可能重复:

我想使用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'
def scanURL(域,重试次数=3):
状态=0
加载=0
browser=webkit.WebView()
browser.open('http://'+域)
浏览时。获取\u加载\u状态()<2:
持续
如果browser.get_load_status()=4:
如果重试次数>0:
返回scanURL(域,重试次数-1)
返回“失败”
返回“成功”
该网站加载良好,但有些特殊网站正在重定向到其他地方的网页重定向,我尝试将
load finished
事件连接到函数,并调用了两次

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


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

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

相关:抱歉,我是根据在pyqt/pyside中使用qtwebkit的经验提出这个想法的。。。