Java 在spring mvc中防止刮取web内容

Java 在spring mvc中防止刮取web内容,java,spring,security,spring-mvc,web-scraping,Java,Spring,Security,Spring Mvc,Web Scraping,我正在一个包含SpringMVC房地产清单的网站上工作。我想防止脚本通过抓取网站来窃取内容。有人有过可以轻松插入SpringMVC环境的技术经验吗 用户代理太简单,无法绕过 我的一个想法是跟踪服务器端的两个计数器。 ipaddress-->(计数器xhr请求、计数器页面请求) 计数器页面请求通过过滤器增加 计数器xhr请求在文档就绪时增加 如果筛选器注意到两个计数器完全不同步,则ip将被阻止 这能起作用吗?或者有更简单的技术吗 干杯 编辑 我知道,如果scraper是持久的,他们会找到一种获

我正在一个包含SpringMVC房地产清单的网站上工作。我想防止脚本通过抓取网站来窃取内容。有人有过可以轻松插入SpringMVC环境的技术经验吗

用户代理太简单,无法绕过

我的一个想法是跟踪服务器端的两个计数器。 ipaddress-->(计数器xhr请求、计数器页面请求)

  • 计数器页面请求通过过滤器增加
  • 计数器xhr请求在文档就绪时增加
如果筛选器注意到两个计数器完全不同步,则ip将被阻止

这能起作用吗?或者有更简单的技术吗

干杯

编辑


我知道,如果scraper是持久的,他们会找到一种获取内容的方法。然而,我想让它尽可能的难。

在我的脑海里:

  • 寻找页面请求方式的模式。定期是一个标志。常规频率可能是一个标志(一天四次,但在一天中的不同时间)
  • 需要登录。在用户登录之前不会显示任何内容,因此至少scraper必须有一个帐户
  • 每隔一段时间,将内容周围的标记名称混合在一起。这可能会破坏他们的剧本。这样做足够多次,他们就会寻找更绿色的牧场

    • 你根本无法阻止它,但你可以尽可能让它变得更难

      一种使其更难的方法是在URL中添加一些加密标志,以非常频繁的时间更改您的内容URL

      在给定的链接中给出了一些建议。 通过ajax加载内容。 使ajax请求动态化,这样他们就不能直接去处理ajax请求

      只有复杂的scraper支持java脚本的执行


      大多数scraper不会通过真正的浏览器运行页面,所以你可以试着利用这一点来为自己创造优势。

      如果你关心搜索引擎,那么看看robots.txt这是一个教程,这是谷歌的实现,你可以花很多时间在这方面,或者意识到如果有人想把你的网站刮得很糟,他们会的,而你对此无能为力。如果你将信息发布到一个可以自由匿名访问的媒体上,你就不能指望用Captcha保护itLogin。。。和浏览者说再见。。。。和1/谷歌机器人和2/普通用户说再见?不,谢谢:)