为网页抓取工具提供访问者看不到的消息(文本字符串)的最佳方法是什么?
用例:我的网站正在被抓取,这很好,但是我想向刮板提供一些我的访问者不可见的其他数据。如何有效地做到这一点?
我可以在<span>
标记之间包裹一段文本,并在页面加载时为使用JavaScript的访问者隐藏它,但是刮除器可能会运行JavaScript并在删除字符串后刮除副本。如何避免这种情况?
答案 0 :(得分:1)
您是否考虑过使用<meta>
标签?它不会显示给您的用户(不需要javascript),并且可能是大多数网络抓取工具开始寻找元数据的地方。
例如<meta name="description" content="This page is about foo bar and baz">
答案 1 :(得分:1)
我认为您几乎无法保证会收到此消息。在编写抓取脚本之前,创建者通常会在通用浏览器中分析网站结构,因此该消息将被隐藏。这样一来,文档的仅一部分将以不可见的无头模式报废,因此人类既看不到消息,程序也不会以任何大的可能性保存它。即使将所有HTML替换并保存以供将来处理,该处理也很有可能将自动完成,并且仅对某些关键元素进行。因此,执行此操作的唯一可靠方法是完全阻止抓取,以阻止脚本创建者调试脚本故障时会收到的某些消息。但是即使在这种情况下,也很难将第一次尝试与其他允许的尝试分开,因此,您可能根本就阻止了抓取。
您可以尝试在浏览器控制台中记录一些值得注意的消息,希望脚本创建者可以在准备阶段在分析DOM结构并在控制台中运行一些测试代码时看到它。查看Facebook或https://ponyfoo.com/的工作方式: