Firefox插件:如何从网页抓取数据?

时间:2014-12-04 10:11:03

标签: firefox firefox-addon firefox-addon-sdk

目的

我正在尝试为网站表单创建一个通用答案数据库。表单是对计算机硬件规范的描述,我试图使其基于模型字段,其他字段自动填充。扩展有两个按钮,“populate”将基于模型字段,检查数据库中是否有匹配的条目,然后根据该数据将数据填充到表单中。第二个按钮是“保存”,它将获取字段中的数据并将其与模型字段结合并将其放入数据库中。

问题

所以,我的主要问题是与网页本身进行交互,如何从网页中获取数据,然后如何更改字段?

1 个答案:

答案 0 :(得分:5)

  

所以,我的主要问题是与网页本身进行交互,如何从网页中获取数据,然后如何更改字段?

您可以使用a Firefox Add-on SDK Page-mod, click here for the documentation

执行此操作

以下是获取数据的示例:

示例页面 - Mod

/lib/main.js:

var tag = "p";
var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*.mozilla.org",
  contentScriptFile: data.url("element-getter.js"),
  onAttach: function(worker) {
    worker.port.emit("getElements", tag);
    worker.port.on("gotElement", function(elementContent) {
      console.log(elementContent);
    });
  }
});

/data/element-getter.js:

self.port.on("getElements", function(tag) {
  var elements = document.getElementsByTagName(tag);
  for (var i = 0; i < elements.length; i++) {
    self.port.emit("gotElement", elements[i].innerHTML);
  }
});