我試圖從下面的代碼下載chrome瀏覽器的嵌入式pdf,但是該文件正在存儲在我的C:\驅動器中,如下面的文件:C:\TEST_A_15.pdf.crdownload
。保存嵌入.pdf不是.pdf文件
def download_pdf(lnk):
from selenium import webdriver
from time import sleep
options = webdriver.ChromeOptions()
download_folder = "C:\\"
profile = {"plugins.plugins_list": [{"enabled": False,
"name": "Chrome PDF Viewer"}],
"download.default_directory": download_folder,
"download.extensions_to_open": ""}
options.add_experimental_option("prefs", profile)
print("Downloading file from link: {}".format(lnk))
driver = webdriver.Chrome(chrome_options = options)
driver.get(lnk)
filename = lnk.split("=")[3]
print("File: {}".format(filename))
print("Status: Download Complete.")
print("Folder: {}".format(download_folder))
driver.close()
如果我調整filename
什麼是下面的線,然後我得到的C:\TEST_A_15.pdf
文件在我的硬盤所需的無.crdownload
末。但後來我得到一個IndexError: list index out of range
這是合乎邏輯的,因爲"="
不是在一個位置上找到4
filename = lnk.split("=")[4]
使用的URL(我改變主機名和PDF文件的名稱,以便URL不工作): https://testing.nl/getpdf.asp?id=ORsP5UqX6IikuikcGiLD&unique=adda3b24-f9ca-4007-898a-caed5309c140&filename=TEST_A_15.pdf
更奇怪,當我同時使用一個網絡驅動器與filename = lnk.split("=")[3]
那麼該文件將被存儲爲.tmp文件,即:2498d715-84aa-4e81-8037-264bb0211b4b.tmp
,當我使用不正確的代碼(filename = lnk.split("=")[4]
)它給人的IndexError
但正確保存文件作爲網絡驅動器上的.pdf文件。
你有些令人費解的問題歸結爲用split(「=」)解析下載URL。請編輯您的問題並提供[最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve),它可以重現問題。 – martineau