如何使用Selenium Webdriver通过URL列表下载文件

数据向导

我编写了一个代码,使用Selenium Webdriver通过URL列表下载文件,但是由于某种原因,它没有下载任何文件到我的assignedn目录中。当我仅一次下载一个代码时,该代码运行良好,但是当我使用for循环时,它不起作用。

这是一个示例URL:https : //www.regulations.gov/contentStreamer?documentId=WHD-2020-0007-1730&attachmentNumber=1&contentType=pdf

这是我的代码:

download_dir = '/Users/datawizard/files/'

for web in down_link:
    try:
        options = webdriver.ChromeOptions()
        options.add_argument('headless')
        options.add_experimental_option("prefs", {
          "download.default_directory": '/Users/clinton/GRA_2021/scraping_project/pdf/',
          "download.prompt_for_download": False,
          "download.directory_upgrade": True,
#           "safebrowsing.enabled": True,
          "plugins.always_open_pdf_externally": True
        })
        driver = webdriver.Chrome(chrome_options=options)

        driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
        params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': download_dir}}
        command_result = driver.execute("send_command", params)
        
        driver.get(url)
        
    except:
        print(str(web)+"Link cannot be open")

我想知道我的代码是否做错了什么,因为当我运行上面的代码时它没有给我任何错误。

艾琳·史蒂莲(Alin Stelian)

您不需要Selenium来下载文件,可以使用该request轻松下载文件

import requests

for web in down_link:
    fileName = YOUR_DOWNLOAD_PATH + web.split("=")[1].split("&")[0] + ".pdf" #I created a filename
    
    r = requests.get(web, stream=True)
    with open(fileName, 'wb') as f:
        for chunk in r.iter_content():
            f.write(chunk)

根据硒更新了答案

#replace the below value with your urls list
down_link = [
    'https://www.regulations.gov/contentStreamer?documentId=WHD-2020-0007-1730&attachmentNumber=1&contentType=pdf',
    'https://www.regulations.gov/contentStreamer?documentId=WHD-2020-0007-1730&attachmentNumber=1&contentType=pdf']
download_dir = "/Users/datawizard/files/"

options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_experimental_option("prefs", {
    "download.default_directory": download_dir,
    "download.prompt_for_download": False,
    "download.directory_upgrade": True,
    "plugins.always_open_pdf_externally": True
})
driver = webdriver.Chrome(chrome_options=options)


for web in down_link:
    driver.get(web)
    time.sleep(5) #wait for the download to end, a better handling it's to check if the file exists

driver.quit()

如果您的文件没有唯一的文件名-上面的代码将用下载的文件替换现有文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Selenium在点击事件中下载文件?

来自分类Dev

如何从http url下载文件?

来自分类Dev

iOS解析如何通过URL下载文件

来自分类Dev

Selenium Webdriver使用相对路径上传下载文件

来自分类Dev

如何通过Meteor下载文件?

来自分类Dev

如何使用GEB通过表单提交下载文件

来自分类Dev

无法使用Selenium WebDriver下载文件

来自分类Dev

如何通过URL下载文件然后获取其名称

来自分类Dev

使用Python通过SSH下载文件

来自分类Dev

如何使用Java中的Selenium Webdriver下载.docx文件?

来自分类Dev

使用Selenium WebDriver以自定义路径下载文件

来自分类Dev

使用Selenium WebDriver获取默认的下载文件夹路径

来自分类Dev

使用Python通过Internet下载文件

来自分类Dev

如何使用Python,Selenium和PhantomJS下载文件

来自分类Dev

如何使用python中的Web URL下载文件?通过浏览器下载有效,但不能通过python请求下载

来自分类Dev

如何使用Vala通过HTTP下载文件?

来自分类Dev

如何使用Express从url下载文件?

来自分类Dev

如何在python中使用Selenium下载文件?

来自分类Dev

如何通过附加php变量从其他URL下载文件

来自分类Dev

如何通过附加php变量从其他URL下载文件

来自分类Dev

如何通过附加php变量从其他URL下载文件

来自分类Dev

如何通过附加php变量从其他URL下载文件

来自分类Dev

如何通过HTTP下载文件?

来自分类Dev

仅使用URL下载文件

来自分类Dev

Selenium Webdriver使用相对路径上传下载文件

来自分类Dev

wget从文件列表中下载文件,如何为每个下载文件指定名称?

来自分类Dev

使用Watir Webdriver和phantomjs下载文件

来自分类Dev

通过 selenium 和 phantomjs 从动态 url 下载文件

来自分类Dev

如何根据链接列表下载文件

Related 相关文章

  1. 1

    如何使用Selenium在点击事件中下载文件?

  2. 2

    如何从http url下载文件?

  3. 3

    iOS解析如何通过URL下载文件

  4. 4

    Selenium Webdriver使用相对路径上传下载文件

  5. 5

    如何通过Meteor下载文件?

  6. 6

    如何使用GEB通过表单提交下载文件

  7. 7

    无法使用Selenium WebDriver下载文件

  8. 8

    如何通过URL下载文件然后获取其名称

  9. 9

    使用Python通过SSH下载文件

  10. 10

    如何使用Java中的Selenium Webdriver下载.docx文件?

  11. 11

    使用Selenium WebDriver以自定义路径下载文件

  12. 12

    使用Selenium WebDriver获取默认的下载文件夹路径

  13. 13

    使用Python通过Internet下载文件

  14. 14

    如何使用Python,Selenium和PhantomJS下载文件

  15. 15

    如何使用python中的Web URL下载文件?通过浏览器下载有效,但不能通过python请求下载

  16. 16

    如何使用Vala通过HTTP下载文件?

  17. 17

    如何使用Express从url下载文件?

  18. 18

    如何在python中使用Selenium下载文件?

  19. 19

    如何通过附加php变量从其他URL下载文件

  20. 20

    如何通过附加php变量从其他URL下载文件

  21. 21

    如何通过附加php变量从其他URL下载文件

  22. 22

    如何通过附加php变量从其他URL下载文件

  23. 23

    如何通过HTTP下载文件?

  24. 24

    仅使用URL下载文件

  25. 25

    Selenium Webdriver使用相对路径上传下载文件

  26. 26

    wget从文件列表中下载文件,如何为每个下载文件指定名称?

  27. 27

    使用Watir Webdriver和phantomjs下载文件

  28. 28

    通过 selenium 和 phantomjs 从动态 url 下载文件

  29. 29

    如何根据链接列表下载文件

热门标签

归档