【问题标题】:Recursively Saving a Website递归保存网站
【发布时间】:2015-02-05 20:03:27
【问题描述】:

我是 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)[用户可能已登录他的帐户]

任何事情都可能有帮助,在此先感谢 :-)

【问题讨论】:

  • 您是否要求社区为您设计扩展程序?还是你要资源?这不是很清楚。
  • @DominatorX 这是一个有效的问题,请看看为什么我认为这些反对票无效。回复:庞大的 API
  • 其实这样的问题是非常有效的。我现在是 SO 上的 6k 指针,我问如何图标化窗口,另一个用户为我概述了它。我用它作为插件的起点。请参阅此处的主题并了解该解决方案如何提供我可以在我的插件中使用的头脑风暴算法:stackoverflow.com/a/24030011/1828637

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


【解决方案1】:

这是一个有效的问题。由于 XPCOM/HTML5/Other 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 返回文本上运行字符串操作而遭受痛苦的情况。更糟糕的可能是返回文本上的正则表达式。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多