gpt4 book ai didi

javascript - 如何从 URL 获取元数据

转载 作者:行者123 更新时间:2023-12-05 03:55:07 25 4
gpt4 key购买 nike

我刚开始使用 java 脚本,我想从 URL 中获取元数据...当在输入字段中输入任何 URL 时,它必须从中提取元数据,这是在 html java 中使用的基本用法-脚本在执行代码时抛出错误

我正在寻找任何替代方案,但没有任何帮助。请提供有关如何实现该功能的任何想法。

<!DOCTYPE html>
<html>
<body>
<head>
<meta name="description" content="Free Web tutorials">
<meta name="keywords" content="HTML5,CSS,JavaScript">
<meta name="author" content="John Doe">
<meta content="http://stackoverflow.com/favicon.ico">
</head>

<p>Click the button to return the value of the content attribute of all meta elements.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
var x = "https://www.amazon.in/"
// var x = document.getElementsByTagName("META");
var txt = "";
var i;
for (i = 0; i < x.length; i++) {
txt = txt + "Content of "+(i+1)+". meta tag: "+x[i].content+"<br>";
}

document.getElementById("demo").innerHTML = txt;
}
</script>

</body>
</html>

最佳答案

我猜你正在尝试使用 javascript 构建元数据 scraper,如果没有错的话。
在从任何 URL 请求数据时,您需要在进一步操作之前考虑 CORS 策略。

引用网址:

  1. https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
  2. https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors

JSFiddle:http://jsfiddle.net/pgrmL73h/

演示了如何从给定的 URL 中获取元标记。出于演示目的,我使用了 https://jsfiddle.net/ 用于获取元标记的 url,您可以根据需要更改它。

按照以下步骤从网站检索 META 标签。

  1. 要从任何网站 url 检索页面源,首先您需要访问该网站。使用 jquery AJAX 方法你可以做到。
    引用网址:https://api.jquery.com/jquery.ajax/

  2. 使用 jQuery 中的 $.parseHTML 方法,它有助于从 html 字符串中检索 DOM 元素。
    引用网址:https://api.jquery.com/jquery.parsehtml/

  3. 一旦 AJAX 请求成功检索页面源,我们就会检查页面源中的每个 DOM 元素并根据需要过滤 META 节点并将数据存储在“txt”变量中。

例如:关键字、描述等标签将被检索。

  1. AJAX 请求完成后,我们将在段落标记内显示变量“txt”的详细信息。

JS代码:

function myFunction() {
var txt = "";
document.getElementById("demo").innerHTML = txt;
// sample url used here, you can make it more dynamic as per your need.
// used AJAX here to just hit the url & get the page source from those website. It's used here like the way CURL or file_get_contents (https://www.php.net/manual/en/function.file-get-contents.php) from PHP used to get the page source.
$.ajax({
url: "https://jsfiddle.net/",
error: function() {
txt = "Unable to retrieve webpage source HTML";
},
success: function(response){
// will get the output here in string format
// used $.parseHTML to get DOM elements from the retrieved HTML string. Reference: https://api.jquery.com/jquery.parsehtml/
response = $.parseHTML(response);
$.each(response, function(i, el){
if(el.nodeName.toString().toLowerCase() == 'meta' && $(el).attr("name") != null && typeof $(el).attr("name") != "undefined"){
txt += $(el).attr("name") +"="+ ($(el).attr("content")?$(el).attr("content"):($(el).attr("value")?$(el).attr("value"):"")) +"<br>";
console.log($(el).attr("name") ,"=", ($(el).attr("content")?$(el).attr("content"):($(el).attr("value")?$(el).attr("value"):"")), el);
}
});
},
complete: function(){
document.getElementById("demo").innerHTML = txt;
}
});
}

关于javascript - 如何从 URL 获取元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60445600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com