我试图爬行哪个有很多东西并且需要花费大量时间才能完全加载。但是,我想要的东西加载速度非常快,但仍然执行driver.get(url)直到网页完全加载。 有没有办法防止这种情况发生?一旦我定义的某个元素出现在DOM中,就让get方法返回?我想在浏览器中停止工作。
答案 0 :(得分:1)
因此,我发现的最佳解决方案是:
profile = webdriver.FirefoxProfile()
profile.set_preference("webdriver.load.strategy", "unstable")
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)
driver.get(url)
try:
wait = WebDriverWait(driver, timeout=20, poll_frequency=0.1)
wait.until(<expectation object>)
finally:
driver.execute_script("return window.stop")
这将停止浏览器加载页面,您仍然可以抓取并与加载的站点进行交互。