当前位置:编程学习 > C#/ASP.NET >>

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

别人用软件访问网页来抓取内容分析 导致网站负荷太大
如何让别人读取不到内容 --------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 抓取网页就是模拟浏览器进行访问,你这似乎就是不让浏览器访问啦~~
有些抓取软件(少部分)直接进行httpresponse,这个可以通过请求的头部来判断,但是大部分是模拟浏览器的头部格式,因此从这个角度很难判断。你可以限制一个ip重复访问的时间间隔吧 --------------------编程问答-------------------- 防盗链代码,禁止站外提交
提高服务器安全性实现数据等分离 --------------------编程问答-------------------- 防止浏览器访问是个悖论。我们知道有时候同一ip的客户端连续访问,并不代表着就是同一台机器在访问,也许是一个校园网内的许多机器.......总之要反“抓取”,就会有点损失。

至于说连10分钟才访问一次的那种都“反”,我跟#2楼一样,认为这是不可能的。 --------------------编程问答--------------------
引用 4 楼 sp1234 的回复:
防止浏览器访问是个悖论。我们知道有时候同一ip的客户端连续访问,并不代表着就是同一台机器在访问,也许是一个校园网内的许多机器.......总之要反“抓取”,就会有点损失。

至于说连10分钟才访问一次的那种都“反”,我跟#2楼一样,认为这是不可能的。

OO --------------------编程问答-------------------- 我以前见过一个网页,呵呵很好玩,在页面里边套一个frame,然后用一个脚本代码来避免别人直接访问内容(如果直接浏览frame则给出其它结果)。这是假设直接访问内容的人都不会看脚本、跟踪http消息才成立的。这对想读取你的网页内容用于商业目的人根本没有意义。 --------------------编程问答-------------------- 这个还真不好办 --------------------编程问答-------------------- 题外;

Mozilla宣言
准则
1. 互联网是现代生活不可分割的一部分,是教育,交流,合作,商业,娱乐,以及整体社会的关键组成部分。
2. 互联网是全球公共资源,必须保证开放性和可用性。
....


Mozilla 宣言 --------------------编程问答-------------------- 看到标题我也想知道下,看来付出和回报不在一个比例,只能增加服务器的承压能力了。 --------------------编程问答-------------------- 我看到有些网站 读取出来是乱码 人家如何实现的 --------------------编程问答-------------------- 用 javascript 加载主要内容 。 --------------------编程问答-------------------- 友情帮顶 --------------------编程问答-------------------- 看来这是一个一个博弈啊,可以实现一部分功能的基础上,损失另外的一些正常功能。 --------------------编程问答-------------------- 貌似 新浪有这功能,你用程序过于频繁的反问,会访问不了 --------------------编程问答-------------------- 路过.... --------------------编程问答-------------------- 看一下它们要抓了做什么吧,从这个角度考虑,可能会有解。
如果是想得到内容,那就把内容搞得很乱,
如果是别的,就不好办了。 --------------------编程问答-------------------- 为什么要这样搞 --------------------编程问答-------------------- 防止不了的 --------------------编程问答-------------------- 机器与人打开的区别就是机器抓的速度更快,不让同一个IP繁烦访问只能这样了,这样就可减轻服务器压力了,还是提交要做做防范了 --------------------编程问答-------------------- ip,早就让抓取软件搞乱了
损失一点吧,也是有郊的
加大承压能力
屏蔽一个最重的根源 --------------------编程问答-------------------- 搜索引擎就是类似于采集程序,如果能禁的话,搜索引擎也就抓不了 --------------------编程问答-------------------- 这个很难处理的 比如通过一个端口访问外网就可能是这样的一会IP重复访问,没有什么好的办法来解决这样的问题的 --------------------编程问答-------------------- 每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分 --------------------编程问答-------------------- up --------------------编程问答-------------------- 你的网站要是不需要搜索引擎来抓的话还行的通,否则你会很惨的。 --------------------编程问答-------------------- 我觉得不可能。。。。 --------------------编程问答-------------------- 我公司是买了个防火墙了事。

我公司是做人力资源的。旗下有多个人才网。 --------------------编程问答-------------------- --------------------编程问答-------------------- 在页面上输出一段隐藏的随机版权提示信息代码,就行了
为避免采集时同时可以正则替换,所以这个随机还要弄的无规律可循 --------------------编程问答-------------------- 页面用JS加载,可以适当的抵制垃圾蜘蛛
--------------------编程问答-------------------- 你要是能防止google和baidu抓你的内容,估计他们该给你打电话了。 --------------------编程问答--------------------
引用 29 楼 cyq1162 的回复:
在页面上输出一段隐藏的随机版权提示信息代码,就行了
为避免采集时同时可以正则替换,所以这个随机还要弄的无规律可循

如果改下正则可能就又有规律了.. --------------------编程问答-------------------- 拔掉网线 --------------------编程问答-------------------- 这个好像不可能 --------------------编程问答-------------------- 部分文字内容处理一下变成图,图文混排组成完整内容,如果资料不能直接使用,可能就不感兴趣了。 --------------------编程问答-------------------- 如果不考虑 用户易用性的话
可以添加验证码访问
每次加载页面 先弹出验证码输入框  --------------------编程问答-------------------- UP --------------------编程问答-------------------- ding --------------------编程问答-------------------- 不错 --------------------编程问答-------------------- 每天回帖即可获得10分可用分! --------------------编程问答-------------------- 没有办法! 魔和道的问题。

减轻你的负载,倒是可以限制同一IP地址的刷新时间。执行一个查询间隔时间你可以控制一下,这个在DZ论坛中常用到。比如同一IP执行下个数据库查询至少需要 15s 的间隔。 --------------------编程问答-------------------- 学习下 --------------------编程问答-------------------- 了解一哈 --------------------编程问答-------------------- 进来了解一下 --------------------编程问答-------------------- 这个可不太好办,验证的话也只是时间问题 --------------------编程问答-------------------- 帮我看看我的问题!谢谢啦!题目是“一个很棘手的问题!想了一天了没解决!帮帮忙吧!在线等,很急!”,刚发的,没人回
--------------------编程问答-------------------- UP --------------------编程问答-------------------- 顶个 --------------------编程问答-------------------- 最优解决方案:关掉服务器! --------------------编程问答-------------------- 看来 讨论了半天还是没有方案啊 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 你可以做一个验证码功能,用户在访问该页前必须先输入验证码,然后通过post显示该页面,这样他用程序就无法自动抓取了,当然其他人访问也必须每次都输入验证码,有得必有失

===========================================================
http://www.webdiyer.com --------------------编程问答-------------------- 顶个 --------------------编程问答-------------------- UP --------------------编程问答-------------------- 还真不会,只听说过一个东西“防盗链”好像能解决这样类似问题的哦! 除了本站的人可以下载、访问以外,其它的客户端请求可以进行过滤!也就是个HTTPHANDER程序就OK了。 --------------------编程问答-------------------- 防火墙,设置访问的频率不能超过一个阀值 --------------------编程问答-------------------- mark --------------------编程问答-------------------- up --------------------编程问答-------------------- 学习 --------------------编程问答--------------------
引用 11 楼 flyingfz 的回复:
用 javascript 加载主要内容 。

老子抓的就是js内容,有种别请求服务器。。。 --------------------编程问答-------------------- 楼主碰到的问题,其实和很多网盘碰到的问题一样

我给楼主的观点是,对一定访问频率以上的ID进行控制。

你可以对你需要控制的资源进行访问频率控制,对同一ID做该类资源的访问进行时间间隔控制,这个间隔有楼主根据实际情况决定。 --------------------编程问答-------------------- 全部通过JS输出
document.write --------------------编程问答-------------------- 变换地址  变换标签 --------------------编程问答-------------------- 在多的js输出什么的 只要呈现在页面上不都是 html吗。就用源文件来抓。我一分钟抓一次。得到的都是最新数据。你拿我怎样。 
 1.  IP上做文章,有得有失。有的忠实的用户会被你干掉
 2.  变换地址   很多抓取内容的就是一个固定的网址。你经常换下可能有用。但是那种直接保存地址的用户 又悲剧了
 3.  变换标签   (分解源字符串进行窃取的方法很有效)


我是个淘宝卖家。现在有个小软件自己在用,每天开着。 就是天天抓取一些页面的内容来为我所用。也都是大网站的。不过从没被禁过。 --------------------编程问答--------------------
引用 33 楼 zzxap 的回复:
拔掉网线

好办法  --------------------编程问答-------------------- 我改试想了一下。   来个IP判断。如果访问不寻常,就给他来个要验证呢。 --------------------编程问答-------------------- 1、登录限制,返回用户需登录,登录要求验证吗什么的。
2、一个用户不能同时在不同的地方访问。当前用户在线,重复登录时,踢掉上一个。
3、常用功能加验证码,避免恶意访问。
4、一般来讲,普通用户,几乎不会频繁访问一个页面。也可以在一定时间范围内做用户访问次数限制。 --------------------编程问答-------------------- ifram和js才是硬道理
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,