0

OS X 10.8でpythonバインディングを使用してselenium webdriverでpdfをダウンロードしようとしています。

ダウンロードリンクが機能するかどうかを確認するだけでなく、実際にpdfファイルが必要です。私が理解しているように、デフォルトの「プレビュー」ではなく、pdfコンテンツタイプをダウンロードするようにFirefoxプロファイルを設定する必要があります。

Firefox のインスタンスを開くコードは次のとおりです。

def Engage():
    print "Start Up FIREFOX"
    ## Create a new instance of the Firefox driver
    profile = webdriver.firefox.firefox_profile.FirefoxProfile()
    profile.set_preference('browser.download.folderList', 2)
    profile.set_preference('browser.download.dir', os.path.expanduser("~/Documents/PYTHON/Download_Files/tmp/"))
    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/pdf'))
    driver = webdriver.Firefox(firefox_profile=profile)
    return driver

また、最初にプロファイルを次のように設定しようとしました:

profile = webdriver.FirefoxProfile()
## replacing :: profile = webdriver.firefox.firefox_profile.FirefoxProfile()
## the other attributes remained

これは同じ結果になります

このプロファイルは、pdf をダウンロードするのではなく、新しいウィンドウでプレビュー モードで開きます。

リクエストを通じてコン​​テンツ タイプを再確認したところ、「application/pdf」として確認できました。

import requests
print requests.head('mywebsite.com').headers['content-type']

私が間違っていることについて何か考えはありますか?

4

2 に答える 2

1

いつか同じような状況に直面していました。解決策は非常に簡単です。デフォルトでは、Firefox の設定では、PDF ファイルをダウンロードするのではなく、PDF ファイルを開きます。これを克服するには、ブラウザで config:about と入力し、オプションをダブルクリックして pdfjs.disabled と入力します。値が false から true に変わるはずです。ブラウザを再起動して、任意の pdf ファイルを開いてみます。ブラウザでファイルを開く代わりに、ファイルをダウンロードします。ハッピーコーディング。

于 2013-10-08T06:30:11.537 に答える