js 抓取网页内容(丰富的社交分享是最重要的营销渠道吗?)

优采云 发布时间: 2021-11-18 20:14

  js 抓取网页内容(丰富的社交分享是最重要的营销渠道吗?)

  [编者按] Prerender 服务可以为网络爬虫提供预渲染的动态页面内容,解决了使用JavaScript 框架构建的网站不支持爬虫爬取的问题。本文详细介绍了一个解决方案,特别是集成了Prerender服务的Docker容器镜像。

  

  如果您使用 AngularJS 为大众消费者构建应用程序,您肯定希望用户在社交媒体上分享它。对于特定的应用,丰富的社交分享几乎是最重要的营销渠道。所谓的“丰富的社交分享”是指像下面这样的分享:

  

  可见,Facebook、Twitter等社交网站可以获得非常丰富的内容,不仅限于网页标题和图片。为什么可以这样做?因为网页的 HTML 文档的头部收录具有特殊含义的元数据标签。Facebook、Pinterest 和 Google+ 等社交网站可以读取遵循开放图谱协议标准的元数据,例如,

  <br />

<br />

<br />

<br />

<br />

  Twitter 也支持类似的机制,但它的元数据属性前缀是 twitter: 而不是 og:。

  当用户在社交网站上分享一个 URL 时,社交网站会启动一个网络爬虫来抓取页面的内容。网络爬虫首先在网页的源文档中寻找各种元数据标签,然后再查看网页中的标签、图片等常规HTML元素的内容。

  使用 AngularJS(和其他 JavaScript 框架)开发的网站不支持抓取

  我已经在 Earlyclaim 站点的页面上添加了所有符合开放图谱协议标准的必要元数据标签。然而,当我分享一个从 Earlyclaim 网站到 Facebook 的链接时,显示的结果非常令人失望:

  

  造成如此糟糕结果的原因很简单:在抓取网页时,网络爬虫并没有执行网页中的 JavaScript 代码。因此,爬虫爬取的内容是这样的:

  <br />

<br />

<br />

<br />

<br />

  解决方案

  该解决方案的基本思想是应用在服务器端执行的用户代理检测方法来识别当前请求来自社交网站的爬虫;这时候服务端不会像浏览器请求一样返回AngularJS模板文件。它被重定向到服务器生成的页面。该页面收录所需的元数据标签和正确的信息。

  在谷歌搜索并与其他初创公司startypchile的技术人员讨论后,我们找到了prerender.io服务,可以对动态页面的内容进行预渲染。这为解决问题奠定了良好的开端。

  Prerender 的开发者提供了很多中间件并开源了 prerender 引擎,因为他们认为

  我们相信搜索引擎优化 (SEO) 是一种权利,而不是一种特权!

  当然,如果你愿意,你也可以为他们提供的 Prerender 托管服务付费。

  支持 Earlyclaim 的基础设施是基于 Docker 构建的。为了集成Prerender服务,我们先在Docker Hub中找到了几个相关的容器镜像,然后试用了一下。结果并不令人满意。

  我们的需求包括:

  这些也是我们自己构建容器镜像的原因!

  

  为什么要公开我们的解决方案

  首先,我们相信“协同智能”:

  协作智能是多智能体、分布式系统的一个特征,其中每个智能体(人或机器)都有一个独特的位置,并独立地为解决问题的网络做出贡献。在生态系统中,生物体的协调自治使进化成为可能。在自然生态系统中,每个生物体的唯一标识来自其自身的基因、环境及其在生态系统中的行为和位置。自然生态系统为下一代社交网络的设计提供了原则,这些网络可以支持协作智能、众包个人专业知识、偏好以及在解决问题中的独特贡献。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线