要从JavaScript中的通用网页获取favicon的URL,您可以使用以下方法:
您可以通过解析HTML源代码并查找<link>
标签来获取favicon。以下是一个简单的示例:
function getFaviconURL(url) {
return new Promise((resolve, reject) => {
fetch(url)
.then((response) => response.text())
.then((html) => {
const parser = new DOMParser();
const doc = parser.parseFromString(html, "text/html");
const link = doc.querySelector("link[rel*='icon']");
if (link) {
resolve(link.href);
} else {
reject("Favicon not found");
}
})
.catch((error) => reject(error));
});
}
getFaviconURL("https://www.example.com")
.then((faviconURL) => console.log(faviconURL))
.catch((error) => console.error(error));
favicon.ico
:大多数网站都会在其根目录下存储一个名为favicon.ico
的图标文件。您可以通过将此文件名添加到网站的根URL来获取favicon的URL。以下是一个简单的示例:
function getFaviconURL(url) {
return new Promise((resolve, reject) => {
const faviconURL = new URL("favicon.ico", url);
fetch(faviconURL, { method: "HEAD" })
.then((response) => {
if (response.ok) {
resolve(faviconURL.href);
} else {
reject("Favicon not found");
}
})
.catch((error) => reject(error));
});
}
getFaviconURL("https://www.example.com")
.then((faviconURL) => console.log(faviconURL))
.catch((error) => console.error(error));
请注意,这些方法可能无法在所有情况下都能成功获取favicon的URL,因为网站可能使用不同的方法存储和引用favicon。在这种情况下,您可能需要尝试其他方法或者使用一个更强大的解析库,如cheerio
或jsdom
。
领取专属 10元无门槛券
手把手带您无忧上云