我需要从一个网站下载PDF格式,但不提供以(.pdf)结尾的使用ruby的链接。手动,当我点击链接下载PDF时,它会带我到一个新的页面,一段时间后出现保存/打开文件的对话框。如何在没有.pdf的链接中下载pdf文件的链接
请帮我下载文件。
我需要从一个网站下载PDF格式,但不提供以(.pdf)结尾的使用ruby的链接。手动,当我点击链接下载PDF时,它会带我到一个新的页面,一段时间后出现保存/打开文件的对话框。如何在没有.pdf的链接中下载pdf文件的链接
请帮我下载文件。
如果你只需要一个简单的Ruby脚本来做到这一点,我只是跑wget
。像这样exec 'wget "http://path.to.the.file/and/some/params"'
尽管如此,你也可以运行wget。
另一种方法,是只运行一个让你知道PDF是
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脚本来获取文件,你可以使用前面提到的内容。
更新:
有一个更加复杂,这不是最初表示,这是该URL到PDF改变每次有更新到PDF的时间。为了使这项工作,你可能想要做一些涉及网络抓取。我建议nokogiri。这样您可以查看下载的页面,然后对所需的URL执行获取请求。此外,承载PDF的服务器配置错误,并且在打开页面几秒钟内打开chrome。
如何解决这个问题:我去了网站,并刷新它。然后断开与服务器的连接(按下X,否则会出现刷新按钮)。然后右键单击下载链接旁边的,然后选择inspect element
。然后浏览dom,找到明确标识的内容(如id)。谢天谢地,我发现了一些东西<strong id="telecharger"> Download</strong>
。这意味着你可以使用类似page.css('strong#telecharger')[0].parent['href']
这应该给你一个URL。然后,您可以执行上述的获取请求。我没有时间为你编写脚本(工作量太大),但这应该足以解决问题。
您的做到这一点
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
我一直在做这为我的项目和它的作品。
我不认为你理解这个问题,我已经明确提到我没有以.pdf结尾的链接,否则它不会成为问题。 – sushilthe
我的印象是,你有一个地址从一个休息端点返回pdf。除了端点没有'.pdf'扩展名。如果是这种情况,那么你所要做的就是向服务器询问该端点的内容,并在它到达时添加'.pdf'扩展名。那里有重定向吗? –
我是ruby编程语言的新手。你能否提供预期的解决方案?我已经提供了上面的链接。 – sushilthe