我希望在其他网站中获取元数据

时间:2017-08-30 07:51:28

标签: reactjs

我是一名前端开发人员。 我想获得元数据。 所以我使用metascraper libraray。 ==> https://www.npmjs.com/package/metascraper 它是npm libraray。

但是我面临着一个意外的困难,即错误。

我该怎么办? 请帮帮我。

Metascraper
        .scrapeUrl("http://www.naver.com")
        .then((metadata) => {
            console.log(metadata)
        })

2 个答案:

答案 0 :(得分:0)

由于您无法控制目标,唯一的解决方案是通过本地服务器代理请求。

为此,您需要在PHP / Node之类的东西中创建服务器端脚本,该脚本接收URL并执行服务器到服务器请求以获取响应并将其输出。您的Metascraper将调用您的本地服务器端脚本,并传递目标URL。这可行,因为服务器到服务器的调用不受CORS的约束。

如果您确实碰巧控制了目标,那么您可以输出CORS标头(access-control-allow-origin)来禁用每个人的CORS或域名白名单。

答案 1 :(得分:0)

你能分享一下你在控制台浏览器中得到的错误吗?

我曾尝试向naver.com提出同样的请求。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function(){
  $.get('https://www.naver.com/').then(function(response) {
    console.log(response);
  });
})
</script>

得到了下一个错误:

XMLHttpRequest cannot load https://www.naver.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9080' is therefore not allowed access.

因此我们可以得出结论,naver.com服务器不支持CORS。 您试图使用的库没有问题。