【问题标题】:How to download pdf file in ruby without .pdf in the link如何在链接中没有 .pdf 的 ruby​​ 中下载 pdf 文件
【发布时间】:2013-07-24 19:03:17
【问题描述】:

我需要使用 ruby​​ 从不提供以 (.pdf) 结尾的链接的网站下载 pdf。手动,当我点击下载 pdf 的链接时,它会将我带到一个新页面,一段时间后会出现保存/打开文件的对话框。

请帮我下载文件。

The link

【问题讨论】:

    标签: ruby pdf download


    【解决方案1】:

    你这样做

    require 'open-uri'
    File.open('my_file_name.pdf', "wb") do |file|
      file.write open('http://someurl.com/2013-1-2/somefile/download').read
    end
    

    我一直在为我的项目做这件事,而且效果很好。

    【讨论】:

      【解决方案2】:

      如果您只需要一个简单的 ruby​​ 脚本来执行此操作,我只需运行 wget。赞这个exec 'wget "http://path.to.the.file/and/some/params"'

      此时,您不妨运行 wget。

      另一种方法是在您知道 pdf 所在的页面上运行 get

      source = Net::HTTP.get("http://the.website.com", "/and/some/params")

      您可以使用许多其他 http 客户端,但只要您向 pdf 所在的端点发出 get 请求,它就会为您提供原始数据。然后你可以重命名文件,你就会有pdf

      在您的情况下,我运行以下命令来获取 pdf

      wget http://www.lawcommission.gov.np/en/documents/prevailing-laws/constitution/func-download/129/chk,d8c4644b0f086a04d8d363cb86fb1647/no_html,1/
      mv index.html thefile.pdf
      

      然后打开pdf。请注意,这些是 linux 命令。如果你想用 ruby​​ 脚本获取文件,你可以使用我之前提到的东西。

      更新:

      还有一个最初没有说明的复杂情况,即每次对 pdf 进行更新时,pdf 的 url 都会更改。为了完成这项工作,您可能想做一些涉及网络抓取的事情。我建议nokogiri。这样您就可以查看下载所在的页面,然后在所需的 URL 上执行获取请求。此外,托管 pdf 的服务器配置错误,并在打开页面的几秒钟内破坏了 chrome。

      如何解决这个问题:我去了网站,刷新了它。然后断开与服务器的连接(按 X,否则会有刷新按钮)。然后右键单击下载链接旁边,然后选择inspect element。然后浏览 dom 以找到可以明确识别的内容(例如 id)。谢天谢地,我发现了一些东西<strong id="telecharger"> Download</strong>。这意味着您可以使用 page.css('strong#telecharger')[0].parent['href'] 之类的东西,这应该会给您一个 URL。然后您可以执行上述获取请求。我没有时间为你制作脚本(工作太多),但这应该足以解决问题。

      【讨论】:

      • 我不认为你理解这个问题,我已经明确提到我没有以.pdf结尾的链接,否则不会有问题。
      • 我的印象是您有一个地址,该地址可以从休息端点返回一个 pdf。除了端点没有.pdf 扩展。如果是这种情况,那么您所要做的就是向服务器询问该端点的内容,并在收到时添加 .pdf 扩展名。那里有重定向吗?
      • 我是 ruby​​ 编程语言的新手。您能否提供预期的解决方案?我已经提供了上面的链接。
      • 在不了解您所做的事情的情况下寻求答案通常会让您火上浇油。如果以后有时间,我会尝试发布一个 ruby​​ 脚本来完成它。但是,愿意用谷歌搜索您的问题并阅读文档和博客文章很重要。如果你是 ruby​​ 新手,你可能想开始做教程。我通过 Hartl 教程(用于 Rails)ruby.railstutorial.org 学习。但是,如果您只是对 ruby​​ 感兴趣,我听说过有关 rubymonk.com 的好消息。而且,这些事情需要时间。人们花费数百小时学习新工具
      • 我以前用过很多次ruby(虽然我没有上过完整的课程),我从来没有遇到过像从网上下载这样的东西(即使你看了教程,他们也不会教你这样做)。我搜索并阅读了许多博客,但每一篇都以链接(.pdf)结尾,但我的情况有所不同。所以,如果你不介意,请指导我下载我上面提到的链接。
      猜你喜欢
      • 2019-10-28
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多