【问题标题】:Scraping a remote URL for bookmarking service without getting blocked为书签服务抓取远程 URL 而不会被阻止
【发布时间】:2014-06-15 07:23:45
【问题描述】:

我正在使用服务器端 node.js 函数来获取浏览器传递的 URL 的文本,以便在书签服务中自动索引该 URL。我使用jsdom 进行服务器端渲染。但是,尽管请求来自合法用户,但我还是被热门网站屏蔽了。

有没有办法在浏览器端实现 URL 文本提取,这样请求似乎总是来自正常分布的用户?如何绕过浏览器中的跨站点安全限制?我只需要最终的 DOM 渲染文本。

书签是最好的解决方案吗?当用户想要为页面添加书签时,我只需在书签中附加一个表单并在我的书签中提交 DOM 呈现的文本?

我知道 SO 讨厌辩论,但非常感谢任何关于好的方法的指导。

【问题讨论】:

  • 只是为了澄清。您希望用户向您的服务提交 URL,以将目标页面的渲染副本抓取到数据库中?如果是这样,为什么不仅只获取一次页面,下一个请求它的人会触发更新,而是添加一些服务器代码以确保调用之间必须有最短的经过时间?
  • 页面可能不同,但在同一个域中,例如维基百科文章或亚马逊产品。

标签: javascript dom cross-domain


【解决方案1】:

您当然可以在客户端执行此操作,但我认为这会过于复杂。客户端必须将 html 发送到您的服务,这需要非常仔细的清理,并且可能难以控制传入数据的数量。

我可能会简单地跟踪请求域并确保将调用频率限制在任何单个域。如果使用像 Node.JS 这样您可以轻松设置任意数量的后台获取任务的东西,这应该是相当简单的。这也可以让您微调使用的带宽。

【讨论】:

  • 我没想到。就是这么简单,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-01
  • 2020-08-16
相关资源
最近更新 更多