首页 > 解决方案 > Selenium Python 使用代理刷新页面直到完全加载

问题描述

我想监视一个页面以获取更改。所以我使用代理。并非所有这些代理都有效(有些可能被禁止,有些会变慢等)所以我想刷新页面,并且我想在每次刷新时更改代理,如果页面直到 2 秒才加载,请刷新。

options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://%s' % PROXY['http']) 

        while True:   
                try:
                    browser = webdriver.Chrome(executable_path=path, options=options) 
                    browser.implicitly_wait(1) 
                    browser.get(links)
                    break
                except:
                    browser.close()
                    PROXY = proxy_reader.proxies_call(3)  #this function return a new proxy each time 

    source = browser.page_source 

我不知道如何在 2 秒内完成每个会话......我希望有人能帮助我。

标签: pythonpython-3.xseleniumselenium-webdriverselenium-chromedriver

解决方案


如果您想每次都使用新代理创建会话,直到页面在 2 秒内加载,请尝试以下解决方案

from selenium.common.exceptions import TimeoutException

while True:
    PROXY = proxy_reader.proxies_call(3)
    options = webdriver.ChromeOptions()
    options.add_argument('--proxy-server=http://%s' % PROXY['http']) 
    browser = webdriver.Chrome(executable_path=path, options=options)
    # Set page load timeout: if page not loaded within 2 seconds - raise TimeoutException
    browser.set_page_load_timeout(2)
    try:
        browser.get(links)
        break
    except TimeoutException:
        browser.quit()

推荐阅读