网络爬虫的风险
爬虫有风险,爬取需谨慎。
爬虫是否违法
除去一些个人及小规模的爬虫,大多数爬虫一直都是在法律的边缘,因爬虫进去的事件最近也是一起接一起,我个人也是对网络安全比较感兴趣,我从最开始接触网络就在自己的桌面放了一个《中华人民共和国网络安全法》的文档,让其时刻提醒着我
仔细看安全法的第二十七条
其中有几个点对爬虫都是有效的,干扰他人网络正常功能,Web服务器默认接收人类访问
受限于编写水平和目的,网络爬虫将会为Web服务器带来巨大的资源开销,那我们怎么知道我们爬虫是否干扰他人网络正常功能?小规模的爬虫以及数据不敏感都是可以允许的,这时就要看人家公司怎么说了。在一就是数据的敏感,网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个人隐私,技术本身无罪,但要看你拿到数据后怎么做了,如果用与商用或者贩卖,人家公司知道了,那基本就GG了,服务器上的数据有产权归属网络爬虫获取数据后牟利将带来法律风险,其实这个问题一般在注册人家网站账号时一般都有声明所有权的问题,不过我们注册的时候一般不看协议直接勾选注册了。其实说这么多,还是要看人家公司想不想搞你,人家想搞你,能把一个简单的事情变成违法的(这里除去用于个人学习及科研一系列的),所以如果大规模的爬取数据还是不要太过分的好,别把人家搞毛就行。
网络爬虫的限制
之前看到一个博主写的一篇文章说自己的网站的访问量一半都是爬虫产生的流量,不知道是不是真的,但爬虫规模大的话肯定会造成服务器的巨大开销。那我们网站要怎么限制网络爬虫那?
我们可以通过以下两种方法对就爬虫进行有效的限制:
- 来源审查:判断User-Agent进行限制
检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问 - 发布公告:Robots协议
告知所有爬虫网站的爬取策略,要求爬虫遵守
Robots协议
robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的网络蜘蛛,此网站中的哪些内容是不应被搜索引擎的网络爬虫获取的,哪些是可以被网络爬虫获取的。
每个行业都有每个行业的规矩,爬虫也不例外,爬虫的规矩就是robots协议,robots协议就相当于网站开发者给网络爬虫的公告牌,如果网站没有Robots协议,说明这个网站对所有爬虫没有限制
作用:网站告知网络爬虫哪些页面可以抓取,哪些不行
形式:在网站根目录下的robots.txt文件
robots的使用方法
直接在网站的后面加robots.txt就可以查看,例如https://www.csdn.net/robots.txt
网络爬虫:自动或人工识别robots. txt,再进行内容爬取
约束性:Robots协议是建议但非约束性,网络爬虫可以不遵守,但存在法律风险
Robots协议的基本语法
#注释,*代表所有,/代表根目录
User-agent:* #user-agent代表来源,这句意思是所有爬虫
Disallow:/ #代表不可爬取的目录,仅一个/表示所有目录均不可爬取
对robots协议的理解
爬取网页 玩转网页 | 爬取网站 爬取系列网站 | 爬取全网 |
---|---|---|
访问量很小:可以遵守 访问量较大:建议遵守 |
非商业且偶尔:建议遵守 商业利益:必须遵守 |
必须遵守 |
原则:类人行为可不参考Robots协议
毕竟网站就是吃人类行为的流量的,但切记别拿数据用于商业用途
突破User-agent限制
一般网站都有了爬虫限制那我们要怎么办那?
robots协议我们没办法突破,那只能从User-agent限制突破了,所以我们需要伪装以下User-agent
从下图可以看到我们爬虫对网站发出的请求User-agent都是显示python的requests库的标识
我们需要对User-agent进行简单的伪装即可,User-agent的标识网上很多,也可以在浏览器上输入about:version查看自己的User-agent标识
下面是对User-agent伪装后的效果,可以看到我们发出请求的User-agent已经改变
以上均为个人看法与学习笔记,如有错误请指正,共同学习,谢谢。
转载:https://blog.csdn.net/qq_43431735/article/details/105850710