可能重复: 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代码?
发布于 2012-10-18 16:55:00
对于所有网站来说,以编程方式完成这一任务并不是很确定的方法,因为在某些页面中,这些重定向是用javascript启动的,通常是由setTimeout在n秒钟后启动的,而且也没有内置的方法来扫描这些“怪癖”。但是,如果您正在解析一个已知的网站组,您肯定知道会发生这样的重定向,您可以创建这些urls的列表,其中包含所需的秒数,然后重定向就会发生。启动初始loadFinished后,您可以启动QTimer,将其信号连接到将再次触发loadFinished的函数,因此下一个页面加载肯定会在等待结果时启动。等待页面结果,直到没有新的loadStarted信号被触发,并且不需要再次进行重定向。
https://stackoverflow.com/questions/12958660
复制相似问题