【问题标题】:Headless chrome web driver too slow and unable to download file无头 chrome 网络驱动程序太慢,无法下载文件
【发布时间】:2023-03-19 03:20:02
【问题描述】:

我正在尝试使用 python headless chrome web 驱动程序下载文件。我的代码运行缓慢。没有输出(下载)文件。我没有错误。任何帮助,将不胜感激。 这是我的代码:

# Getting All User Credintials
for x in range(2,st.max_row + 1):
    Users.append([st.cell(x, 1).value,st.cell(x, 2).value, st.cell(x, 3).value])

# Looping through Users
for item in Users:
    try:
        chrome_options = Options()
        chrome_options.add_argument("--headless")
        prefs = {"download.default_directory": os.getcwd()}
        chrome_options.add_experimental_option("prefs", prefs)
        chrome = webdriver.Chrome(chrome_options=chrome_options)

        chrome.get(Url)

        chrome.find_element_by_id("formId:codEmpresa").send_keys(item[0])  # Enterinng login Credintials
        chrome.find_element_by_id("formId:codUsuario").send_keys(item[1])
        chrome.find_element_by_id("formId:senha").send_keys(item[2])
        chrome.find_element_by_link_text("Entrar").click()  # Clicking Login button

        chrome.get("https://www3.honda.com.br/newihs/AbrirPag?Opcao=1998")
        chrome.find_element_by_name("W0002vWDINI").send_keys(DateFrom)  # Entering DateForm
        chrome.find_element_by_name("W0002vWDFIM").send_keys(DateTo)  # Entering DateTo
        chrome.find_element_by_name("W0002BT_CONFIRMAR").click()  # Clicking Confirm button
        wait = WebDriverWait(chrome, 10)
        element = wait.until(EC.element_to_be_clickable((By.NAME, 'W0002BT_INFORMAR2')))
        chrome.find_element_by_name("W0002BT_INFORMAR2").click()  # Clicking Download button

【问题讨论】:

    标签: python-3.x selenium-webdriver download google-chrome-headless


    【解决方案1】:

    除了iamsankalp89回答:

    chrome_options.add_argument('--no-proxy-server')
    

    这些附加选项帮助我大幅提高了性能

    chrome_options.add_argument("--proxy-server='direct://'");
    chrome_options.add_argument("--proxy-bypass-list=*");
    

    (来源:来自issue on GitHub,特别是来自comment

    【讨论】:

    • 这是金子! ^_^
    • 谢谢@teoretic。这个选项真的加快了性能!!!
    【解决方案2】:

    禁用代理并尝试,它应该会提高性能

    chrome_options.add_argument('--no-proxy-server') 
    

    我发现它对我有帮助。

    【讨论】:

      【解决方案3】:

      这应该会有所帮助(C#)

      chromeoptions.AddArguments("--headless", "--window-size=1920,1200");
      

      【讨论】:

        猜你喜欢
        • 2020-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-07
        • 2018-04-08
        相关资源
        最近更新 更多