序
由于互联网大数据的火热,各种大小企业、创业公司出于各种各样的原因都争先恐后的往大数据企业去发展,爬虫技术也由于其易学、效果显著而成为了大家追捧的对象。
什么是爬虫?
通俗来讲,我们平时浏览的页面大都是HTML页面,包括我们平时浏览的新闻,门户网站等都是将文字内容镶嵌在HTML代码中,而爬虫要做的可以简单理解为利 用程序来获取我们需要的网络上的内容,包括文字,视频,图片等信息。
未知攻,如何防?
最简单的爬虫 - curl
使用 curl 爬取内容,保存到文件中
使用 curl 获取网页、接口的内容,再利用 ‘>’, ‘|’ , ‘awk’ 等命令过滤获取需要的内容,从而获取数据保存到文件中
最广泛流行的爬虫 - Python
使用 Python 编写脚本爬取内容
创建 test.py 文件,写入上述内容,获取http响应状态码
phantomjs, puppeteer
无头浏览器通过模拟真实浏览器请求,并提供执行第三方代码的接口才使用数据的爬取。
这里由于演示代码较长,本文只做简单说明,就不贴演示的,后面有空单独写个文章的,如有需要也可自行网上查找相关资料^_^
攻已知,防如何?
最简单的防御 - User-Agent
无论是 Python 还是 Curl 或者 无头浏览器 亦或是 真实浏览器 再发起请求的时候都会将自身的一些信息通过 User-Agent 传递到服务端
通过 nginx 的请求日志我们可以清楚的看到各种请求所带的 User-Agent 是不同的,所以你懂得^_^
在 nginx 的配置中过滤不正确的 User-Agent, 这个时候再通过 curl 、 Python 等方式的爬取,就会返回 403 的错误状态码了
核弹 - iptables
很多时候,单纯使用 User-Agent 进行请求的过滤是没有效的,因为攻击者往往会通过修改 User-Agent 就可以轻易的绕过防御规则了的,这时候就可以考虑使用 iptables 了
以上命令即可禁止 192.168.31.12 这个IP访问了
前端防御
使用 iptables 这一大杀器进行IP封禁固然有效,但其带来的危害也是巨大的,特别是在现今IP池随手可得的时代,往往问题得不到解决,反而会导致正常用户无法访问的。所以对IP进行封禁只有在你有100%把握的情况下才有效的!
我们知道,一个数据要显示到前端,不仅仅是后端输出而已,前端是要做各种渲染的。那么这个时候就有很多种套路让爬虫难受了。(嘿嘿嘿)
1. 错误HTML标签
简单实用,利用一些无关痛痒的html标签让页面dom结构错乱不闭合,而又不影响页面浏览,让爬虫不好识别节点,爬取错误数据(嘿嘿)
2. js支持
利用爬虫不支持的某些浏览器接口方法进行判断,不支持就不加载,当然也可以反其道而行哟,往往有意想不到的效果的
总结
总的来说,爬虫的攻防斗智斗勇,各种套路都层出不穷,大家玩玩就好,毕竟爬虫与反爬虫,是一个很不阳光的行业。
领取专属 10元无门槛券
私享最新 技术干货