我有一个网络爬虫,可以搜索并下载某些文件,但是当“另存为或打开”对话框提示时如何下载pdf文件。我目前正在使用pythonselenium进行爬网。这是我的代码。
from selenium import webdriver
import time
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.tda-sgft.com/TdaWeb/jsp/fondos/Fondos.tda") # Load page
link = browser.find_element_by_link_text("Mortgage Loan")
link.click()
link2 = browser.find_element_by_link_text("ABS")
link2.click()
link3 = browser.find_element_by_link_text("TDA 13 Mixto")
link3.click()
download = browser.find_element_by_link_text("General Fund Information")
download.click()
time.sleep(0.2) # Let the page load, will be added to the API
browser.close()
您将需要修改Firefox配置文件的首选项。为了使其不再显示该对话框,您需要设置使用browser.helperApps.neverAsk.saveToDisk
中的配置文件的属性。为此,您可以执行此操作(请注意,这是针对CSV
/ Excel文件的-我认为您的类型将为“应用程序/ pdf”):
profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('text/csv,'
'application/csv,'
'application/msexcel'))
对于您的情况(我还没有使用PDF进行过测试,所以要加一点盐:)),您可以尝试以下操作:
profile = webdriver.firefox.firefox_profile.FirefoxProfile()
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', ('application/pdf'))
第二个参数是一个元组,其中包含永远不会触发Save As
提示的文件类型。然后,您将此个人资料传递到您的browser
:
browser = webdriver.Firefox(firefox_profile=profile)
现在,当您在该元组中下载某个类型的文件时,它应绕过提示并将其放在默认目录中。如果您想更改文件下载的目录,则可以使用相同的过程,只需更改几件事(将附加profile
到浏览器之前执行此操作):
profile.set_preference('browser.download.folderList': 2)
profile.set_preference('browser.download.dir': '/path/to/your/dir')
下载 <?php /** * 下载文件请求示例 */ require dirname(__DIR__) . '/vendor/autoload.php'; use Yurun\Util\HttpRequest; use Yurun\Util\YurunHttp; use Yurun\Util\YurunHttp\Handler\Swoole; $url = 'http://www.baid
问题内容: 我正在尝试使用Flask创建一个Web应用程序,该应用程序允许用户上传文件并将其提供给其他用户。现在,我可以将文件正确地上传到upload_folder了。但是我似乎找不到找到让用户下载回来的方法。 我将文件名的名称存储到数据库中。 我有一个为数据库对象服务的视图。我也可以删除它们。 在我的HTML中,我有: 和下载视图: 但它正在返回: 未找到 在服务器上找不到请求的URL。如果您手
问题内容: 我是使用Django的新手,我正在尝试开发一个网站,用户可以在其中上传许多excel文件,然后将这些文件存储在媒体文件夹Webproject / project / media中。 然后,该文档会与它们上载的任何其他文档一起显示在列表中,你可以单击这些文档,它会显示有关它们的基本信息以及他们上载的excelfile的名称。从这里,我希望能够使用链接再次下载相同的excel文件: 我的网
问题内容: 我正在使用简单的文件下载脚本: 它在最大200mb的本地服务器上运行。 当我在我的网站上尝试此代码时,它将下载173KB而不是200MB的文件。 我检查了所有内容,编写了一些自定义代码(使用ob函数和fread而非readfile),但无法下载大文件。 谢谢您的回答。 我正在使用Apache 2.2,PHP 5.3 可以处理所有大文件的所有PHP设置。(执行时间,内存限制,… 问题答案
当我尝试使用Java代码以编程方式下载文件时,遇到了一个异常: 下面是我的代码,包括我想下载的文件: 最初我尝试使用协议下载,但它给我一个状态代码,因此我意识到它重定向到。但是,从上面给出了。使用浏览器,下载工作完美无缺。如何使用Java代码正确下载文件?
我有一个文件表示为块的列表,目标是下载所有块,加入并保存为一个文件。 它应该适用于大文件 应该是跨浏览器解决方案 null null null null 但我仍然无法实现我的目标与涵盖的需求… 如果有人有经验,最好的解决方案,我恳请分享它在这里。谢谢
我试图触发文件下载,我有问题这样做Safari(火狐 这是我的客户代码: Safari响应在屏幕上打印出来(加载在同一页上)。 注意:我尝试过其他建议的方法,但每个方法都有自己的问题。 更新:在响应标头中,我看到内容处理被设置为内联而不是附件。为什么会发生这种事? 我做错了什么?
我可以通过以下服务下载pdf文件: 但是,当我运行该服务时,我得到了以下响应: %���� 10 obj 要打开pdf,我需要用第二个鼠标按钮点击响应链接: WS网址 然后选择“在新选项卡中打开”以打开pdf文件,看起来您正在运行该服务两次以获得一次pdf文件。 我想自动打开每个请求到WS的pdf文件。 这意味着每次您请求WS时,都应该返回直接在屏幕中打开的pdf文件。 有人能帮我修一下吗? Tk