如何防止别人用软件抓取网页

 我来答
匿名用户
2016-12-02
展开全部
1> 关键信息通过ajax请求来获取,最好是需要带有临时token作为参数的请求。网站在发布的时候需要做javascript代码压缩和混淆,这样程序人员就很难通过阅读代码或者捕获请求来建立模拟采集。这里说的关键信息,是指那种对业界同行来说比较重要的信息,比如说价格等。除了这些关键信息以为的信息就最好不要用ajax请求来显示了,那样不利于SEO优化,搜索引擎的蜘蛛也不能模拟如此复杂ajax请求。另外如果有分页,一定要用ajax请求来分页。具体例子可以看看 花瓣网 的首页。至于通过表单请求来获取数据,有些采集器已经能模拟带session或者cookie信息的表单请求了,至少Jsoup是可以做到的。

2> 关键信息通过图片来显示。这种是技术含量比较低的防御了,唯一的好处是有利于SEO优化,因为图片通过alt来携带更加丰富的信息。京东的商品价格就是用图片来显示的,采集器采集到的价格信息需要做OCR文字识别,如果在图片的格式做些手脚或者加入混淆信息,那别人采集过去的信息准确度就会大大降低。另外通过图片来显示的另外一个好处就是可以把图片服务器独立出来,然后通过防火墙设置来只允许来自已知域名的请求。

3> 网页代码结构化混淆。简单的说就是关键信息的显示不是规律性的。这种做法对网站开发人员要求比较高。毕竟html是一种结构化的语言,想要通过不规律的html标签勾勒出美观的结构化界面是比较难的,但不是不可能。比如说同一张页面的上商品价格列表,你可以随机用div,li,span等这些文字标签来封装,然后通过定制css来达到规范布局。不同的页面(分页)上价格列表,最顶层的div的id或者class不一样,而且跟其他页面的的id无规律可循。这样做可以让采集程序很难发掘到采集的规律,那么采集的难度就大大加大了,即使能采集,效率也会相当低下。这种做法基本上不影响SEO优化。
不过话说回来,不管你采取哪种防御措施,想防住真正的高手是不可能的,只要能防住98%的人就可以了。剩下的那2%,你如果发现你的数据被采集了,就采取法律措施吧。前段时间大众点评起诉“食神摇一摇”抄袭数据,就是一个很好的例子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式