可能重复:
Webkit GTK: Determine when a document is finished loading
我想用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代码?
答案 0 :(得分:2)
没有确定的方法可以为所有网站以编程方式完成该任务,因为有些页面会使用javascript启动这些重定向,通常在n秒后由 setTimeout 启动,并且没有构建-in扫描这种“怪癖”的方法。但是,如果要解析已知的网站组,您肯定知道会发生此类重定向,则可以创建这些网址的列表,其中包含重定向发生之前所需的秒数。触发初始loadFinished后,您可以启动QTimer,将其信号连接到将再次触发loadFinished的函数,因此在您等待结果时,下一页加载肯定会启动。 等待页面结果,直到没有新的loadStarted信号被触发,并且不需要再次重定向。