有没有办法可以从 Firefox 扩展中的 DOM 以外的页面获取链接?
Is there a way I can get links from pages other than the DOM in a firefox extension?
我正在尝试从其他页面获取链接,但由于它们未加载,我无法执行此类操作。
var urlsFound = [];
var url = "https://www.youtube.com";
for(var i = url.links.length; i --> 0;)
{
urls.push(url.links[i].href);
}
urlsFound.forEach((item, index) =>
{
console.log(`${index} : ${item}`);
});
现在当然上面的代码不起作用,但它只是为了更好地说明我正在努力完成的事情。如何在 firefox 扩展中工作时从其他页面获取链接而不将它们加载到 DOM 中?我愿意使用任何可以在 Firefox 扩展中工作的技术。
您需要使用 fetch 或 axios 之类的东西发出 http 请求,然后使用 cheerio 解析 html 并获取链接。这是一个例子。
您可以在此处查看如何使用 axios
和 cheerio
:
https://www.npmjs.com/package/axios
const axios = require("axios").default; // can use fetch etc.
const cheerio = require("cheerio");
function getLinks(url) {
return new Promise((resolve, reject) => {
axios.get(url).then(res => res.data).then(HTML => {
const $ = cheerio.load(HTML);
const links = $("a").toArray();
resolve(links);
}).catch(err => reject(err));
});
}
我正在尝试从其他页面获取链接,但由于它们未加载,我无法执行此类操作。
var urlsFound = [];
var url = "https://www.youtube.com";
for(var i = url.links.length; i --> 0;)
{
urls.push(url.links[i].href);
}
urlsFound.forEach((item, index) =>
{
console.log(`${index} : ${item}`);
});
现在当然上面的代码不起作用,但它只是为了更好地说明我正在努力完成的事情。如何在 firefox 扩展中工作时从其他页面获取链接而不将它们加载到 DOM 中?我愿意使用任何可以在 Firefox 扩展中工作的技术。
您需要使用 fetch 或 axios 之类的东西发出 http 请求,然后使用 cheerio 解析 html 并获取链接。这是一个例子。
您可以在此处查看如何使用 axios
和 cheerio
:
https://www.npmjs.com/package/axios
const axios = require("axios").default; // can use fetch etc.
const cheerio = require("cheerio");
function getLinks(url) {
return new Promise((resolve, reject) => {
axios.get(url).then(res => res.data).then(HTML => {
const $ = cheerio.load(HTML);
const links = $("a").toArray();
resolve(links);
}).catch(err => reject(err));
});
}