使用Python-Windmill进行网页抓取(如何准确等待页面完全加载)
我最近在用windmill玩网页抓取,但它的API中的waits.forPageLoad功能无法判断页面是否完全加载好。
在我需要重新加载一个已经存在的DOM(文档对象模型)的情况下,我使用wats.forElement来检测DOM,以便脚本“判断”页面是否加载完成。但有时候它会在页面还没加载好之前就检测到DOM。
另外,在Firefox中使用windmill测试客户端加载页面似乎特别慢。如果我用普通的Firefox浏览器打开同样的页面,可能只需要2秒,但在测试客户端中可能要花上整整一分钟。这正常吗?
最后,我想知道有没有比windmill更好的网页抓取工具?它的文档似乎有点简单。
请给点建议。谢谢 :P
1 个回答
0
client.waits.sleep(milliseconds=u'2000')
一个绝对的暂停,持续2秒。
client.waits.forPageLoad(timeout=u'20000')
会在后面的代码执行之前,等到页面加载完成或者等到20秒过去,以先到者为准。可以把它想象成一个有时间限制的检查。如果页面在20秒内加载完成,就继续执行;如果超过20秒还没加载,就算失败。
希望这能帮到你,
TD