我试图从下面的代码下载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