递归保存网站

时间:2015-02-05 20:03:28

标签: javascript recursion firefox-addon firefox-addon-sdk

我是JavaScript和FireFox cfx SDK的新手。 我正在尝试为FireFox编写扩展,以通过在其中递归爬行来完全保存URL的内容。该计划可分为以下几个阶段:

1- Saving contents of a given URL(including images, text, URLs and etc).
2- Crawling pages(a.Extracting URLs inside the page, b. Recursively traversing them).

如果有人给我一些提示(例如,要学习的关键词或阅读的链接,哪些部分可以用cfx SDK完成,哪些部分用JavaScript等等),我会感激不尽。还有一件事要说请求页面应该用当前会话完成(就像用户在选项卡中打开了URL)[用户可能登录了他的帐户]

任何事情都可能有所帮助,提前谢谢: - )

1 个答案:

答案 0 :(得分:1)

这是一个有效的问题。由于XPCOM / HTML5 /其他API非常庞大,初学者需要帮助指向正确的方向。

我就是这样做的:

您可以使用XMLHttpRequest(Sending Data to a Server using JavaScript(Firefox Addon))并获取页面的html。然后将页面传递给这样的解析器:(How to parse a XML string in a Firefox addon using Add-on SDK)然后你可以通过

获取页面上的所有URL
var parser = new DOMParser();
var doc = parser.parseFromString(reponseFromAjax, "text/html");

var URLs = doc.getElementsByTagName('a');
var IMGs = doc.getElementsByTagName('img');

如果用户没有问过这个问题,我向你保证,通过在AJAX返回文本上运行字符串操作,我们可能会遇到另一个开发案例。更糟糕的是Regex可能在返回文本上。

要使用cfx AddonSDK中的这些XPCOM内容,请参阅我链接的xmlhttprequest主题中的注释。它说明了如何导入chrome(Cu / Ci / etc)