gpt4 book ai didi

python - 如何让 Selenium 不等到整个页面加载,脚本很慢?

转载 作者:太空狗 更新时间:2023-10-29 17:41:06 26 4
gpt4 key购买 nike

Selenium driver.get (url) 等待整个页面加载。但是一个抓取页面试图加载一些死的 JS 脚本。所以我的 Python 脚本等待它并且在几分钟内不起作用。这个问题可能出现在网站的每个页面上。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.cortinadecor.com/productos/17/estores-enrollables-screen/estores-screen-corti-3000')
# It try load: https://www.cetelem.es/eCommerceCalculadora/resources/js/eCalculadoraCetelemCombo.js
driver.find_element_by_name('ANCHO').send_keys("100")

如何限制等待时间、阻止文件的 AJAX 加载或其他方式?

我还在 webdriver.Chrome() 中测试我的脚本,但会使用 PhantomJS(),或者可能使用 Firefox()。因此,如果某些方法使用浏览器设置的更改,那么它一定是通用的。

最佳答案

当 Selenium 默认加载页面/url 时,它遵循默认配置,其中 pageLoadStrategy 设置为 normal。为了让 Selenium 不等待整个页面加载,我们可以配置 pageLoadStrategypageLoadStrategy 支持以下 3 种不同的值:

  1. 正常(整页加载)
  2. eager(交互式)

这是配置 pageLoadStrategy 的代码块:

  • Firefox:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

    caps = DesiredCapabilities().FIREFOX
    caps["pageLoadStrategy"] = "normal" # complete
    #caps["pageLoadStrategy"] = "eager" # interactive
    #caps["pageLoadStrategy"] = "none"
    driver = webdriver.Firefox(desired_capabilities=caps, executable_path=r'C:\path\to\geckodriver.exe')
    driver.get("http://google.com")
  • Chrome:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

    caps = DesiredCapabilities().CHROME
    caps["pageLoadStrategy"] = "normal" # complete
    #caps["pageLoadStrategy"] = "eager" # interactive
    #caps["pageLoadStrategy"] = "none"
    driver = webdriver.Chrome(desired_capabilities=caps, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get("http://google.com")

Note : pageLoadStrategy values normal, eager and none is a requirement as per WebDriver W3C Editor's Draft but pageLoadStrategy value as eager is still a WIP (Work In Progress) within ChromeDriver implementation. You can find a detailed discussion in “Eager” Page Load Strategy workaround for Chromedriver Selenium in Python

关于python - 如何让 Selenium 不等到整个页面加载,脚本很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com