我正在使用Chickenfoot 编写一个网络爬虫,需要保存PDF 文件。我可以单击页面上的链接或获取 PDF 的 URL 并使用
go("http://www.whatever.com/file.pdf")
我得到了Firefox“打开file.pdf”对话框,但无法单击“确定”按钮实际保存文件。
我尝试使用其他方式下载文件(wget、python 的 urllib2、斜纹),但 PDF 文件是封闭的,所以这些都不起作用。
任何帮助表示赞赏。
我正在使用Chickenfoot 编写一个网络爬虫,需要保存PDF 文件。我可以单击页面上的链接或获取 PDF 的 URL 并使用
go("http://www.whatever.com/file.pdf")
我得到了Firefox“打开file.pdf”对话框,但无法单击“确定”按钮实际保存文件。
我尝试使用其他方式下载文件(wget、python 的 urllib2、斜纹),但 PDF 文件是封闭的,所以这些都不起作用。
任何帮助表示赞赏。
这个如何在 Mozilla 开发人员文档中保存目标的示例看起来应该完全符合您的要求。我已经测试了一个非常相似的 Chickenfoot 示例,它获取 temp 环境变量,并且在 Chickenfoot 中对我来说效果很好。
https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWebBrowserPersist#Example
您可能必须使用工具、选项、应用程序中的应用程序关联,以确保将操作设置为保存文件,但这些设置可能不适用于这些功能。
结束答案,开始相关的抱怨......
我当然希望有人能修复Chickenfoot 中的许多错误,并编写一个不错的Cookbook 编程指南。我已经使用它多年了,但仍有许多基本的事情我无法弄清楚如何去做。我终于崩溃并订阅了邮件列表,因为档案中有一些不错的脚本示例。由于 Web API 参考非常稀疏,因此需要大量搜索 pdf 参考、博客等。我喜欢Chickenfoot 可以使某些任务自动化的简单方式,但是我需要花费数天时间搜索javascript、DOM 和Firefox 文档才能找到一些方法来完成一些它无法完成的事情,因为我并不是一个真正的网络程序员。Chickenfoot 的目标似乎是我不应该这样做,但不幸的是,很少有人在完善概念证明,因为 MIT 已经放弃了该项目。
我尝试仅使用Chickenfoot 命令以几种方式执行此操作,并确认它们不适用于最新的Firefox 3 和Chickenfoot 1.0.7。
我希望这有帮助!祝你好运。抱歉,我昨天才遇到您的问题,但发现它太有趣了,不能独自离开。
为了安全起见,您将无法单击 Firefox 对话框。下载 URL 内容的最佳方法是读取然后写入 URL 的内容。
// Chickenfoot 1.0.7 Javascript Code to download the content of a url.
include( "fileio.js" ); // enables the write function.
var url = "http://google.com",
saveFileTo = "c://chickenfoot-google.com";
write( saveFileTo, read( url ) );
您可能会发现将 jquery 与 chickenfoot 一起使用会很有帮助。 http://groups.csail.mit.edu/uid/chickenfoot/scripts/index.php?title=Using_jQuery,_jQuery_UI_and_similar_libraries
这对我从 NCES 门户保存 Excel 文件很有用。
http://muaz-khan.blogspot.com/2012/10/save-files-on-disk-using-javascript-or.html
我使用的是 Firefox 3.0 和代码的“旧语法”版本。我还剥离了用于 IE 的代码和“(window.URL || window.webkitURL).revokeObjectURL(save.href);” 这产生了一个错误。