Selenium Python用代理刷新页面,直到完全加载

时间:2018-10-05 10:00:49

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver

我想监视页面以获取更改。 所以我使用代理。并非所有这些代理都能正常工作(某些代理可能被禁止,有些代理会变慢等),所以我想刷新页面,并且我想在每次刷新时都更改代理,如果要等到页面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秒内进行每次会话... 我希望有人能帮助我。

1 个答案:

答案 0 :(得分:1)

如果您希望每次使用新代理创建会话,直到页面在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()