Python:从使用php

时间:2017-02-13 08:28:13

标签: python selenium

我正在尝试从网页下载文件。 文件链接由php~/download.php?id=~

实施

可以单击链接或右键单击文件下载,然后在Web浏览器中选择菜单"save this file"

首先,我将seleniumphantomjs一起使用。获得与标记" a"的链接是成功的。 by" find_element"。我使用ActionChains selenium执行了点击或右键点击,但无法下载该文件。通过搜索网络,phantomjs似乎不支持下载文件。

我认为第二种方式是使用firefoxchrome,它看起来像支持下载文件。请告诉我这种方式是否最好。我在raspberry pi b+上运行该程序。 非常感谢你。

1 个答案:

答案 0 :(得分:3)

下载文件的最简单方法:

import urllib
url = "http://domain.com/~/download.php?id=~"
path_to_file = "/local/folder/where/you/want/to/save/file/file_name"

Python 2.x

urllib.urlretrieve(url, path_to_file)

Python 3.x

urllib.request.urlretrieve(url, path_to_file)

如果您需要使用selenium下载文件:

火狐

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
profile = FirefoxProfile ()
profile.set_preference("browser.download.folderList",2)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.download.dir", '/download/folder/by/default')
profile.set_preference("browser.helperApps.neverAsk.saveToDisk",file_MIME_type)
driver = webdriver.Firefox(firefox_profile=profile)

from selenium import webdriver
download_dir = "/download/folder/by/default"
chrome_options = webdriver.ChromeOptions()
preferences = {"download.default_directory": download_dir ,
                      "directory_upgrade": True,
                      "safebrowsing.enabled": True }
chrome_options.add_experimental_option("prefs", preferences)
driver = webdriver.Chrome(chrome_options=chrome_options)