2010-12-03 74 views
0

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

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

,我得到了Firefox的“打开file.pdf”对话框,但不能点击“确定”按钮保存实际文件。

我试过使用其他方式下载文件(wget,python的urllib2,斜纹),但PDF文件被门控,所以这些都不会工作。

任何帮助表示赞赏。

回答

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

+0

Larry,这似乎工作正常保存网页的来源,但似乎损坏PDF文件或任何其他二进制文件,我已经尝试过。我读了一些关于jQuery的内容,但还没有遇到这个问题的解决方案。 – alaiacano 2010-12-08 15:46:29

0

这个关于如何在Mozilla开发者文档中保存目标的例子看起来应该像你想要的那样完成。我测试了一个非常相似的Chickenfoot示例,它可以获得临时环境变量,并且在Chickenfoot中适用于我。

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

您可能必须在工具,选项,应用程序与应用协会发挥,以确保操作设置为保存文件,但这些设置可能不适用于这些功能。

末回答,开始了相关牢骚......

我当然希望有人能修复奇肯富特的许多错误,并写一个很好的食谱节目指南。我已经使用了好几年了,还有很多基本的东西我都无法弄清楚如何去做。我终于打破了订阅邮件列表,因为档案有一些体面的脚本示例。它需要通过pdf参考,博客等进行大量搜索,因为Web API引用非常稀少。 我非常喜欢Chickenfoot可以让一些任务自动化,但是我需要花几天时间来搜索javascript,DOM和Firefox文档,以便找到办法做一些它不能做的事情,因为我不是一个真正的Web程序员。 Chickenfoot的目标似乎是我不应该这样做,但遗憾的是很少有人正在完善概念验证,因为麻省理工学院已经放弃了这个项目。

我试图用这几种方法使用Chickenfoot命令,并确认它们不能与最新的Firefox 3和Chickenfoot 1.0.7一起使用。

我希望这有助于!祝你好运。对不起,我昨天只是碰到你的问题,但发现它太有趣了,不能一个人留下。