如何使用nodejs从Instagram url获取Open Graph元数据?

Cur*_*ner 5 javascript node.js instagram facebook-opengraph axios

问题:

与其他社交媒体网站类似,我在我的网站中显示 Instagram 链接的预览。但是,当我无法从网页获取元标记时,因为从浏览器访问的页面与通过axios. 我无法在 Instagram 页面中获取Open Graph 标签。

我尝试过的

使用的软件包:axios以及 下面示例中使用的帖子网址: https: //www.instagram.com/p/Cg39m-KjfC8/jssoup

const axios = require('axios').default;
var JSSoup = require('jssoup').default

const fetchOgDatafromInsta = async (postid) => {
  // let's consider this url for example
  page = await axios.get(`https://www.instagram.com/p/Cg39m-KjfC8/`, {
    headers: {
      "sec-ch-ua-platform": "Windows",
      "User-Agent":
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.81 Safari/537.36",
      "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
      "accept-encoding": "gzip, deflate, br",
      "accept-language": "en-US;q=0.7",
      "sec-fetch-dest": "document",
      "sec-fetch-mode": "navigate",
      "sec-fetch-site": "none",
      "sec-fetch-user": "?1",
      "sec-gpc": 1,
      "upgrade-insecure-requests": 1
    },
  })
  var soup = new JSSoup(page.data, false)
  const allMeta = soup.findAll(('meta'))
  allMeta.forEach(element => {
    console.log(element.attrs);
  });
}
Run Code Online (Sandbox Code Playgroud)

无论有或没有标题,结果都是相同的。像这样的标签<meta property="og:image"/>不存在。 在此输入图像描述

还有其他方法获取元标记数据吗?大多数社交媒体平台都可以做到这一点!

请帮忙!!!

任何建议都感激地接受。提前致谢。