使用Chickenfoot保存PDF文件

时间:2010-12-03 20:39:35

标签: chickenfoot

我正在使用Chickenfoot编写网络爬虫,需要保存PDF文件。我可以点击页面上的链接或抓取PDF的URL并使用

go("http://www.whatever.com/file.pdf") 

我得到了firefox“Opening file.pdf”对话框,但是无法点击“确定”按钮来实际保存文件。

我尝试过使用其他方法下载文件(wget,python的urllib2,twill),但PDF文件是门控的,所以这些都不起作用。

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

如何在Mozilla开发人员文档中保存目标的示例看起来应该完全符合您的要求。我测试了一个非常相似的Chickenfoot示例,它获得了临时环境变量,这对我来说非常适合Chickenfoot。

https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIWebBrowserPersist#Example

您可能必须使用“工具”,“选项”,“应用程序”中的应用程序关联来确保将操作设置为“保存文件”,但这些设置可能不适用于这些功能。

结束答案,开始相关的抱怨......

我确定希望有人能解决Chickenfoot中的许多错误,并写一本不错的食谱编程指南。我已经使用它多年了,还有很多基本的东西我都无法弄清楚怎么做。我终于崩溃并订阅了邮件列表,因为档案有一些不错的脚本示例。由于Web API参考非常稀疏,因此需要大量搜索pdf引用,博客等。 我喜欢Chickenfoot可以自动完成一些任务,但是我花了几天的时间搜索javascript,DOM和Firefox文档来找到做某些事情的方法,因为我不是一个真正的网络程序员。 Chickenfoot的目标似乎是我不应该这样做,但遗憾的是很少有人正在改进概念证明,因为麻省理工学院放弃了这个项目。

我尝试使用Chickenfoot命令执行此操作,并确认它们不适用于最新的Firefox 3和Chickenfoot 1.0.7。

我希望这有帮助!祝好运。对不起我昨天只碰到了你的问题,但发现单独离开太有意思了。

答案 1 :(得分:0)

为安全起见,您将无法点击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很有帮助。 http://groups.csail.mit.edu/uid/chickenfoot/scripts/index.php?title=Using_jQuery,_jQuery_UI_and_similar_libraries

答案 2 :(得分:0)

这对我有用,可以从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);”这产生了一个错误。