【问题标题】:Download PDFs from Automatic Download Links with Node.js Scraper [closed]使用 Node.js Scraper 从自动下载链接下载 PDF [关闭]
【发布时间】:2014-07-09 18:32:14
【问题描述】:

我正在使用 Node.js(使用 Request.js 和 Cheerio.js)制作抓取工具,并且正在导航以下载链接以下载 PDF 并将它们添加到我计算机上的文件夹中。链接会自动开始下载,它们不只是导航到呈现的 PDF,所以我不确定如何通过管道将下载从 Node 传输到文件夹。

【问题讨论】:

    标签: node.js download scrape


    【解决方案1】:

    我不确定您所说的渲染 PDF 是什么意思,但如果您知道文档的 url,只需发送一个 ajax 调用来获取原始数据,并将其转储到输出文件。

    所以这里是用 Nodejs 编写文件。 Writing files in Node.js

    示例来自: http://www.sitepoint.com/making-http-requests-in-node-js/

    var request = require("request");
    var fs = require("fs");
    
    request("http://www.sitepoint.com").pipe(fs.createWriteStream("jspro.htm"));
    

    【讨论】:

    • 感谢您的回复。我的代码中几乎有完全相同的 sn-p,但是当我导航到要将 PDF 发送到的文件夹并尝试打开它们时,它们将无法打开。它们看起来是空的(它们只有 10 个字节大)。我怀疑这与链接不是实际 PDF 的事实有关,它只是开始自动下载 PDF。
    • 尝试使用 textedit/vi 打开文件。我的预感是它给你一个重定向链接。如果是这种情况,您只需要继续跟踪链接跟踪,直到您点击实际的 pdf。请记住,pdf 必须存在于您的浏览器下载它的 url 中,除非该网站有一个疯狂的奇怪 cms 设置。
    • 这很有帮助,谢谢!这些文件只显示“您请求的页面已被删除”。这是链接响应的主体。我不太确定从这里去哪里,因为据我所知,我没有办法遵循“链接线索”。当我在浏览器中加载给定的链接时,没有呈现任何内容(所以我无法查看源代码),下载才开始。
    • 这是棘手的部分。您是如何从浏览器导航到链接的?您是否加载了主页并导航到它,或者您是否复制/粘贴了您的抓取工具提供的网址?该页面已删除错误可能是因为该站点使用 cookie/标头来确定要为您服务的文件。 Cheerios 不存储/处理这些。如果是这种情况,那么您可能需要研究无头浏览解决方案。我对 PhantomJS 很幸运,但请记住,抓取速度会慢一些。
    • 这是我正在抓取的初始link。在此页面上,有两个附件12。我从我的爬虫中获取了这两个链接,所以我只是导航到这些链接并尝试通过管道传输响应,但由于自动下载不是响应,因此没有任何传输。
    猜你喜欢
    • 2012-09-26
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2015-10-14
    相关资源
    最近更新 更多