在 selenium python 的特定位置下载图像

Downloading images at a particular location in selenium python

我正在尝试使用 selenium 下载图像,但我不知道如何将这些文件定向到所需位置。谁能告诉我怎么做?

使用此代码在 Selenium-Python 绑定中设置所需的下载位置:

executable_path = r"C:\Selenium+Python\chromedriver.exe"
options = webdriver.ChromeOptions()
prefs = {'download.default_directory' : '/path/to/dir'}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(executable_path, options=options)

您需要将 /path/to/dir 更改为您想要的位置。

如果您使用的是 Chrome 网络驱动程序,您可以使用这些设置:

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("download.default_directory=C:/Downloads")

driver = webdriver.Chrome(chrome_options=options)

此处我将其设置为“C:/Downloads”,但您可以将其更改为任何其他目的地。
对于 Firefox,你可以使用这个:

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", 'PATH TO DESKTOP')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")

driver = webdriver.Firefox(firefox_profile=profile)

其中 'PATH TO DESKTOP' 是您要下载文件的磁盘路径

按照此post使用 firefox 下载

from selenium import webdriver
profile = webdriver.FirefoxProfile()
path = 'C:\downloads'
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', path)
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'image/png', 'image/jpeg')

然后 select 下载按钮并点击它。

如果您只有图像的 link,我建议您使用诸如 mechanize 或 urllib 之类的工具来下载内容

img = driver.find_element_by_xpath(xpath)
src = img.get_attribute('src')

# download the image
req = urllib.urlopen(src)

f = open(filename,'wb')
f.write(req.read())
f.close()