[英]Python Download PDF Embedded in a Page
我有这个链接:
我想下载嵌入式PDF。
我尝试了urllib
和request
的常规方法,但是它们不起作用。
import urllib2
url = "http://www.equibase.com/premium/chartEmb.cfm?track=ALB&raceDate=06/17/2002&cy=USA&rn=1"
response = urllib2.urlopen(url)
file = open("document.pdf", 'wb')
file.write(response.read())
file.close()
而且,我也试图找到pdf的原始链接,但它也没有用。
内部链接:
将Selenium
与特定的ChromeProfile
结合使用,您可以使用以下代码下载嵌入式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("/")[4].split(".cfm")[0]
print("File: {}".format(filename))
print("Status: Download Complete.")
print("Folder: {}".format(download_folder))
driver.close()
当我调用此函数时:
download_pdf("http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=1&BorP=P&TID=ALB&CTRY=USA&DT=06/17/2002&DAY=D&STYLE=EQB")
那就是输出:
>>> Downloading file from link: http://www.equibase.com/premium/eqbPDFChartPlus.cfm?RACE=1&BorP=P&TID=ALB&CTRY=USA&DT=06/17/2002&DAY=D&STYLE=EQB
>>> File: eqbPDFChartPlus
>>> Status: Download Complete.
>>> Folder: C:\
看一下特定的配置文件:
profile = {"plugins.plugins_list": [{"enabled": False,
"name": "Chrome PDF Viewer"}],
"download.default_directory": download_folder,
"download.extensions_to_open": ""}
它将禁用Chrome PDF Viewer
插件(将pdf嵌入网页),将默认下载文件夹设置为在download_folder
变量中定义的文件夹,并设置不允许Chrome自动打开任何扩展程序。
之后,当您打开所谓的“内部链接”时,您的网络驱动程序会自动将.pdf
文件download_folder
到download_folder
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.