htmlunit抓取动态网页(现实世界中的问题:我的应用托管在Heroku上)

优采云 发布时间: 2022-04-11 05:29

  htmlunit抓取动态网页(现实世界中的问题:我的应用托管在Heroku上)

  现实世界的问题:

  我的应用程序托管在 Heroku 上,据我所知,Heroku 无法提供将无头(无 GUI)浏览器(例如 HTMLUnit)作为 Googlebot 运行的解决方案

  生成 HTML 快照以索引我的 AJAX 内容。

  我建议的解决方案:

  如果您还没有,我建议您阅读 Google 的

  “使 AJAX 应用程序可抓取

  规格齐全”。

  想象一下我有:

  注意:Hash Bang (#!) 是 google

  规范的一部分。

  我想构建一个简单的“托管在 Google App Engine (GAE) 上”

  Web 服务”,即:

  接受 URL 参数,例如 ://#!tab=TabA&subtab=SubTab3 (URL 参数应该是 URLEncoded) 运行 HTMLUnit 到 #!tab=TabA&subtab=SubTab3 以在服务器上打开和运行客户端 JavaScript。一切完成后(或大约 45 秒后),HTMLUnit 返回到 DOM。返回的内容可以通过 JSON/JSONP 发回,或者将 URL 返回到生成并存储在 google 应用引擎服务器上的文件(用于基于文件的“缓存”结果)......这里欢迎提出建议。如果返回文件的 URL,则可以使用 CURL 获取源代码(也称为 HTML 快照)。

  我的应用程序需要管理对...的调用,基本上:

  捕获对 Googlebots %26subtab=SubTab3 的调用(googlebot 抓取工具会转义某些字符,例如 %26=&)。从后端向 ://#!tab=TabA&subtab=SubTab3 发送请求(URL 参数应为 URLEncoded),以将返回的 HTML 快照呈现到前端。谷歌索引内容,我们很高兴!

  我没有使用 Google App Engine 或 Java 或 HTMLUnit 的经验。

  我也许能弄清楚……如果可以的话,我会发布我的结果。

  否则,我认为对于某人来说这是一个非常好的机会来写一个踢屁股的博客 文章 概述一个关于新手如何构建这样一个 Web 服务的分步指南。

  这将向更多人介绍出色的(免费)Google App

  引擎。毫无疑问,这也将鼓励更多地采用 Google 的可抓取 AJAX 内容规范……我们都可以从中受益!

  随着 Google 的规范获得更多接受,设置无头浏览器的“障碍”将离开许多

  开发者谷歌寻找答案!立即获得名望与荣耀的答案!(编辑:至少我会赞美你)。

  @_chrisjacob 如果您想讨论解决方案,请在 Twitter 上联系我。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线