当前位置: 首页 > 面试题库 >

如何使用selenium下载文件?

施俊远
2023-03-14
问题内容

我正在尝试获取下载链接并下载文件。

我有一个包含以下链接的日志文件:

http://www.downloadcrew.com/article/18631-aida64
http://www.downloadcrew.com/article/4475-sumo
http://www.downloadcrew.com/article/2174-iolo_system_mechanic_professional
...
...

我有这样的代码:

import urllib, time

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

f = open("dcrewtest.txt")

for line in f.readlines():
    try:
        driver.find_element_by_xpath("//div/div[2]/div[2]/div[2]/div[3]/div/a/img").click()
        time.sleep(8)
    except:
        pass

     url = line.encode
     pageurl = urllib.urlopen(url).read()
     soup = BeautifulSoup(pageurl)
     for a in soup.select("h1#articleTitle"):
         print a.contents[0].strip()

     for b in soup.findAll("th"):
         if b.text == "Date Updated:":
            print b.parent.td.text
         elif b.text == "Developer:":
            print c.parent.td.text

到目前为止,我不知道如何获取下载链接并下载它。可以使用selenium下载文件吗?


问题答案:

根据文档,您应该配置FirefoxProfile为自动下载具有指定内容类型的文件。这是在txt文件中使用第一个URL的示例,该文件将exe文件保存在当前目录中:

import os
from selenium import webdriver


fp = webdriver.FirefoxProfile()

fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-msdos-program")

driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://www.downloadcrew.com/article/18631-aida64")

driver.find_element_by_xpath("//div[@class='downloadLink']/a/img").click()

注意,我也简化了xpath。



 类似资料:
  • 我无法找到正确的方法来实现我的目标,即下载带有java selenium脚本的pdf。

  • 问题内容: 这是我的情况:我必须登录到一个网站并从那里下载CSV,而从linux服务器无头。该页面使用JS,没有它就无法工作。 经过一些研究,我选择了Selenium和PhantomJS。登录,设置CSV参数并使用Selenium / PhantomJS / Py3查找下载按钮没有问题,实际上令人称奇。 但是单击下载按钮没有任何作用。经过一番研究,我发现PhantomJS似乎不支持下载对话框和下载

  • 我正在使用远程webdriver来执行一些测试。然而,在某个时候,我需要下载一个文件并检查其内容。 我使用远程webdriver如下(在中): 使用“正常”的webdriver,我可以在本地计算机上毫无问题地下载文件。然后我可以使用测试代码来验证下载文件的内容(可以根据测试参数而改变)。它不是对下载本身的测试,但我需要一种方法来验证生成文件的内容... 但是如何使用远程WebDriver来实现呢?

  • 问题内容: 我正在尝试使用selenium从网站下载pdf文件,但我能够打开文件,但无法使用代码自动下载。 码: 请提出建议。先感谢您 问题答案: 以上问题现已解决

  • 我正在使用selenium webdriver自动下载几个PDF文件。我得到PDF预览窗口(见下文),现在我想下载文件。我如何使用谷歌Chrome作为浏览器来实现这一点?

  • 我想从网站下载文件。 该网站有一个文件下载按钮。 但是,当我通过<code>按钮单击下载按钮时。click(),文件不会在Colaboratory上下载。(它在Juypyter Notebook工作。) 我用谷歌搜索并找到了解决方案。我应用该解决方案的代码如下: 但是我在任何地方都找不到下载的文件。 我是否必须在prefs上键入?(但它没起作用。) 如果没有,如何在 Colab 上使用 Selen