zoukankan      html  css  js  c++  java
  • Python+Selenium--下载文件

    场景

    webdriver 允许我们设置默认的文件下载路径。也就是说文件会自动下载并且存在设置的那个目录中,下面以firefox及chrome为例

    代码

    Firefox下载

    为了让Firefox浏览器能实现文件下载,需要通过FirefoxProfile()对其做一些设置。

    browser.download.foladerList :设置成0代表下载到浏览器默认下载路径,设置成2则可以保存到指定的目录。

    browser.download.manager.showWhenStarting  :是否显示开始:True为显示开始,Flase为不显示开始。

    browser.download.dir :用于指定所下载文件的目录。

    os.getcwd()函数不需要传递参数。用于返回当前的目录。

    browser.helperApps.neverAsk.saveToDisk  :对所给文件类型不再弹出框进行询问。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: firefox下载文件.py
    @time: 2019-06-26 16:07
    @desc:
    '''
    from selenium import webdriver
    import os,time
     
    fp = webdriver.FirefoxProfile()
    fp.set_preference("browser.download.folderList",0)
    fp.set_preference("browser.download.manager.showhenStarting",True)
    fp.set_preference("browser.download.dir",os.getcwd())
    fp.set_preference("browser.helperApps.neverAsk.saveToDisk","binary/octet-stream")#下载文件类型
     
    driver = webdriver.Firefox(firefox_profile = fp)
    driver.get("http://pypi.Python.org/pypi/selenium")
    driver.find_element_by_xpath("//a[@id='files-tab']").click()
    time.sleep(5)
     
    #选择下载文件
    driver.find_element_by_xpath("//a[contains(@href,'.tar.gz')]").click()
    time.sleep(30)
     
    driver.quit()

      

    Chrome下载

    download.default_directory:设置下载路径

    profile.default_content_settings.popups:设置为0禁止弹出窗口

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    #!/usr/bin/env python
    # -*- codinfg:utf-8 -*-
    '''
    @author: Jeff LEE
    @file: chrome下载.py
    @time: 2019-06-26 16:32
    @desc:
    '''
    from selenium import webdriver
    import time
     
    options = webdriver.ChromeOptions()
    prefs = {'profile.default_content_settings.popups'0'download.default_directory''d:\'}
    options.add_experimental_option('prefs', prefs)
     
    driver = webdriver.Chrome(executable_path='F:chromedriverchromedriver.exe', chrome_options=options)
    driver.get("http://pypi.Python.org/pypi/selenium")
    driver.find_element_by_xpath("//a[@id='files-tab']").click()
    time.sleep(5)
     
    #选择下载文件
    driver.find_element_by_xpath("//a[contains(@href,'.tar.gz')]").click()
    time.sleep(30)
    driver.quit()
  • 相关阅读:
    P4910 帕秋莉的手环
    P3216 [HNOI2011]数学作业
    洛谷 P2894 [USACO08FEB]酒店
    [网络流24题]魔术球问题
    [网络流24题]飞行员配对方案问题
    [网络流24题]最小路径覆盖问题
    洛谷 P1503鬼子进村
    BZOJ 3631: [JLOI2014]松鼠的新家
    洛谷 P2922 [USACO08DEC]秘密消息Secret Message
    洛谷 P1379 八数码难题
  • 原文地址:https://www.cnblogs.com/chenlimei/p/12780774.html
Copyright © 2011-2022 走看看