我正在尝试使用 NodeJS 从网页中抓取数据。我使用 request
模块获取数据并使用 cheerio
进行解析。但是我注意到一件事:当我使用 chrome 访问某些页面(例如 this nyt article )并检查源代码时,标签 meta
与属性 property
为 og:title
正好有一个匹配。如果我从 Node scraper 请求相同的页面并检查标签,我有 108 个 meta
标签,其属性 property
设置为 og:title
。 我尝试过使用用户代理,但没有成功。
- 造成差异的原因是什么?
- 这些网站上这样做是为了阻止抓取吗?
最佳答案
事实证明,我的问题是我的抓取偏执狂(我相信每个网站都试图将其信息锁定在抓取防御层后面)和我对 cheerio
缺乏了解的结果。对于遇到类似问题的任何人:
$(tag).attr(attribute,value)
会将每个 tag
的 attribute
设置为 value。
要查找 attribute
设置为 value
的所有 tag
,这就是您想要的:
$(tag[attribute = 'value']);
关于javascript - 抓取 opengraph 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36554526/