javascript - 抓取 opengraph 时遇到问题

标签 javascript html node.js web-scraping

我正在尝试使用 NodeJS 从网页中抓取数据。我使用 request 模块获取数据并使用 cheerio 进行解析。但是我注意到一件事:当我使用 chrome 访问某些页面(例如 this nyt article )并检查源代码时,标签 meta 与属性 propertyog:title 正好有一个匹配。如果我从 Node scraper 请求相同的页面并检查标签,我有 108 个 meta 标签,其属性 property 设置为 og:title我尝试过使用用户代理,但没有成功。

  • 造成差异的原因是什么?
  • 这些网站上这样做是为了阻止抓取吗?

最佳答案

事实证明,我的问题是我的抓取偏执狂(我相信每个网站都试图将其信息锁定在抓取防御层后面)和我对 cheerio 缺乏了解的结果。对于遇到类似问题的任何人:

$(tag).attr(attribute,value) 会将每个 tagattribute 设置为 value。

要查找 attribute 设置为 value 的所有 tag,这就是您想要的:

$(tag[attribute = 'value']);

关于javascript - 抓取 opengraph 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36554526/

相关文章:

javascript - 如何让机器人响应 channel 提及?

javascript - 为什么这仍然返回一个 promise ?

javascript - 更改不同页面上的内容

javascript - $location.search() 不工作 - AngularJs 1.5

javascript - NodeJS 14.x - 原生 AWS Lambda 导入/导出支持

Javascript 在窗口下弹出(背景窗口)

javascript - 我可以在浏览器中使用 nodemailer 吗?

html - OpenCart 中的面包屑定位

html - 我的网站在 Firefox 和 Chrome 中看起来不同

node.js - 请求发射器在 Express 中未发出 'end'