我正在尝试从网页下载文件。
文件链接由php
:~/download.php?id=~
可以单击链接或右键单击文件下载,然后在Web浏览器中选择菜单"save this file"
。
首先,我将selenium
与phantomjs
一起使用。获得与标记" a
"的链接是成功的。 by" find_element
"。我使用ActionChains
selenium
执行了点击或右键点击,但无法下载该文件。通过搜索网络,phantomjs
似乎不支持下载文件。
我认为第二种方式是使用firefox
或chrome
,它看起来像支持下载文件。请告诉我这种方式是否最好。我在raspberry pi b+
上运行该程序。
非常感谢你。
答案 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)