爬虫,全称“网络爬虫”,是一种程序或者脚本,可以按照一定的规则,自动抓取万维网上的信息。目前已经步入大数据时代,爬虫已经成为了获取数据不可或缺的方式。做过爬虫的可能都遇到过,爬取的时候IP会突然被网站封掉,因为大多数网站都会设置“反爬虫”措施。
为什么要反爬虫?原因其实很简单。一是爬虫会在短时间内发出大量请求,占用服务器的带宽,影响正常用户的访问。二是爬虫会轻易地将网站上大量的信息资源快速爬走,危害用户的隐私安全及知识产权,这是我们都无法容忍的。所以,防止“爬虫入侵”是非常必要的。
常见的反爬虫方式有以下几种:
1.根据访问频率确定是否为爬虫。
每台电脑在上网时都对应唯一的IP,当这台电脑访问网站的时候会被记录IP。如果这个IP访问的频率过快,远超过一个正常人的访问频率时,就会被认定为爬虫。使用代理IP更换不同IP,对方网站每次都以为是新用户,自然就没有拉黑的风险。如果工作任务量大,抓取速度快,目标服务器会容易发现,所以就需要用代理IP来换IP后再抓取。IPIDEA包含了全球的ip资源足以满足爬虫的需求。
2.根据Headers确定是否为爬虫。
当我们使用浏览器访问网站时,浏览器会自动在访问请求上生成Headers,内容主要包含浏览器版本及采用的编码方式、使用的操作系统等信息,但爬虫一般不会附加这些信息,所以可以被识别出来。
3.利用动态页面反爬虫。
静态页面由HTML代码生成,页面的内容随之固定。而动态页面由脚本语言生成,有些内容需要运行一些脚本才能见到。访问动态页面时,某些内容还需要一些特定的操作才能显示,比如点击、输入验证码等,这就增加了爬取的难度,简单的爬虫就会被剔除掉。