【问题标题】:Headless Python Selenium MacOS to Click/Download Documents via Chromium无头 Python Selenium MacOS 通过 Chromium 单击/下载文档
【发布时间】:2020-02-10 11:17:21
【问题描述】:

关于这个话题有很多。但是,到目前为止,我没有发现任何可行涉及使用上面标题中所说的内容和下面列出的配置。

这是我正在尝试做的事情:转到此 webpage 并单击 csv 文档图标进行下载(通过 xpath 或 css 选择器)。任何一个图标都可以 - 它们下载相同的内容。

下面的源代码概述了我到目前为止所做的事情。该脚本运行没有问题,但没有下载任何文档 - 我该如何解决这个问题?

请注意操作系统、Python、ChromeDriver 和 Chrome 配置的以下参数:

macOS Mojave v.10.14.6、Python v.3.7.3、ChromeDriver v.770386540、Chrome v.770386540

from selenium import webdriver

options = webdriver.ChromeOptions()

prefs = {"download.default_directory": "SOME_PATH"}
options.add_experimental_option("prefs", prefs)
options.binary_location = 'PATH_TO_CHROME'
options.add_argument('headless')

# set the window size
options.add_argument('window-size=1200x600')

# initialize the driver
driver = webdriver.Chrome('PATH_TO_CHROME_DRIVER',
                          options=options)

page_url = 'http://webapps.rrc.texas.gov/eds/eds_searchUic.xhtml'
button = '//*[@id="SearchUicForm:searchTable_paginator_top"]/a[7]'

driver.get(page_url)

# wait up to 10 seconds for the elements to become available
driver.implicitly_wait(5)

driver.find_element_by_xpath(button).click()

【问题讨论】:

    标签: python macos google-chrome web-scraping selenium-chromedriver


    【解决方案1】:

    您可以评论这行代码options.add_argument('headless') 并查看浏览器中发生了什么。它基本上是单击 cvs 图标,然后在浏览器中弹出一个下载窗口,所以我们需要处理这个弹出窗口才能下载。我们可以添加 chrome 选项来防止这种情况发生。

    options = Options()
    options.add_experimental_option("prefs", {
      "download.default_directory": r"C:\Users\xxx\downloads\Test",
      "download.prompt_for_download": False,
      "download.directory_upgrade": True,
      "safebrowsing.enabled": True
    })
    driver = webdriver.Chrome(chrome_options=options)
    

    【讨论】:

    • 我还没有测试,但如果它不起作用并且使用 Firefox 不会有问题,那么请参阅我的另一个测试答案my stackoverflow answer
    • 感谢您的输入,但“AddUserProfilePreference”不是一种方法 - 您可能指的是其他功能吗?
    • 我已经编辑了python的答案。很抱歉没有关注语言。
    猜你喜欢
    • 2020-07-30
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    相关资源
    最近更新 更多