Online-MagazinのPDFをダウンロードしたいと思います。オープンするには、最初にログインする必要があります。その後、PDFを開いてダウンロードします。Python 3でSelenium Module(FireFox)を使用してPDFをダウンロードする方法
以下は私のコードです。それはページにログインすることができ、PDFも開くことができます。しかし、保存のクリックをシミュレートする方法がわからないので、PDFをダウンロードすることはできません。私はFireFoxを使用します。
import os, time
from selenium import webdriver
from bs4 import BeautifulSoup
# Use firefox dowmloader to get file
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", 'D:/eBooks/Stocks_andCommodities/2008/Jul/')
fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
fp.set_preference("pdfjs.disabled", "true")
# disable Adobe Acrobat PDF preview plugin
fp.set_preference("plugin.scan.plid.all", "false")
fp.set_preference("plugin.scan.Acrobat", "99.0")
browser = webdriver.Firefox(firefox_profile=fp)
# Get the login web page
web_url = 'http://technical.traders.com/sub/sublogin2.asp'
browser.get(web_url)
# SImulate the authentication
user_name = browser.find_element_by_css_selector('#SubID > input[type="text"]')
user_name.send_keys("[email protected]")
password = browser.find_element_by_css_selector('#SubName > input[type="text"]')
password.send_keys("LastName")
time.sleep(2)
submit = browser.find_element_by_css_selector('#SubButton > input[type="submit"]')
submit.click()
time.sleep(2)
# Open the PDF for downloading
url = 'http://technical.traders.com/archive/articlefinal.asp?file=\V26\C07\\131INTR.pdf'
browser.get(url)
time.sleep(10)
# How to simulate the Clicking to Save/Download the PDF here?
私のコードに#の後にあなたのコードを添付しました...しかし、私はプログラムを実行するときにエラーが出ました:TypeError:引数は、 'NoneType'ではなく、バイトのようなオブジェクトまたはASCII文字列でなければなりません。私は再び下に自分のコードを掲載します。あなたは見ていただけますか? – thomas2013ch
2番目の部分の前に待機を追加してみてください。私はこれが起こっていると思います。あなたがonload関数が完了する前に変数の内容を取得しようとしているからです。 – TheChetan
こんにちはTheChetan、私はより長い休止を設定し、確かに、PDFがダウンロードされます。どうもありがとう! – thomas2013ch