使用JS获取网页的title内容_解析SiteMap,布置外链
代码:
function getitle(path) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.open("get", path); xhr.send(); xhr.onload = function(ms) { if (xhr.status == 200) { var contenx = xhr.responseText; var star = contenx.indexOf('<title>') + 7; var end = contenx.indexOf('</title>'); resolve(contenx.substring(star, end)); } } }) }
使用Promise可以在async中使用await处理异步问题;
接下来一个例子:获取多个a标签,并获取该Link的title内容后拼接为新的a标签,然后保存为txt;
function save2text(data, filename) { if (!data) { console.error('Console.save: No data') return; } if (!filename) filename = 'linka.txt' if (typeof data === "object") { data = JSON.stringify(data, undefined, 4) } var blob = new Blob([data], { type: 'text/plain;charset=utf-8' }), e = document.createEvent('MouseEvents'), a = document.createElement('a') a.download = filename a.href = window.URL.createObjectURL(blob) a.dataset.downloadurl = ['text/plain', a.download, a.href].join(':') e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null) a.dispatchEvent(e) } function getitle(path) { return new Promise((resolve, reject) => { var xhr = new XMLHttpRequest(); xhr.open("get", path); xhr.send(); xhr.onload = function(ms) { if (xhr.status == 200) { var contenx = xhr.responseText; var star = contenx.indexOf('<title>') + 7; var end = contenx.indexOf('</title>'); resolve(contenx.substring(star, end)); } } }) } var tems = ''; var aa = document.querySelectorAll("#content a"); Promise.all(Array.prototype.map.call(aa, async (item, index) => { var ss = await getitle(item.href); tems += '<a href="' + item.href + '" alt="' + ss + '">' + ss + '</a>\n\r'; })).then(() => { console.log('构造成功,正在导出文件...'); save2text(tems); });
当然这可以天马行空,或则你可以直接保存title等等; 以上代码是我用来解析站点sitemap的所有Link并保存,方便外链布置
快捷登陆
近期评论