2017-02-13 10 views
4

Webページからファイルをダウンロードしようとしています。 ファイルのリンクはphpによって実装されます。~/download.php?id=~Python:phpで実装されたリンクからファイルをダウンロード

ファイルのダウンロードには、リンクをクリックするか、右クリックしてメニューを選択し、Webブラウザで"save this file"することが可能です。

最初にseleniumphantomjsで使用しました。タグ「a」のリンクを「find_element」で取得できました。 ActionChainsseleniumでクリックまたは右クリックしましたが、ファイルをダウンロードできませんでした。 Webを検索すると、phantomjsはファイルのダウンロードをサポートしていないようです。

私が第2の方法として使用すると考えているのは、firefoxまたはchromeです。これはダウンロードファイルのサポートのようです。この方法が最善であるかどうか、私にアドバイスをお願いします。私はraspberry pi b+でプログラムを実行しています。 ありがとうございます。

答えて

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

Firefoxの

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) 
関連する問題