浅谈网络爬虫

2013-02-27
  • 848
  • 0

网络爬虫是一种通过计算机程序抓取互联网信息的一种程序,我们熟悉的Google、百度、搜狗、360等搜索引擎都是通过他们自己的爬虫来获取互联网信息的。并且以此来建立起了自己的搜索引擎数据库。但是随着爬虫的出现,也带给目标网站带来一个问题,爬虫在目标网站抓取数据的过程中,会消耗掉目标网站的部分性能,使爬虫之外的人或程序无法正常访问网站,因此就有了Robots协议。Robots协议是告诉爬虫哪些数据是可以抓取的,哪些数据是不能抓取的,以及可以抓取的数据允许的访问频率是多少?这样每个爬虫可以根据目标网站的Robots协议来选择自己的抓取策略。但是,如果一个爬虫没有遵守Robots协议,又会怎么样呢?毫无疑问,这会引起目标网站的屏蔽。目标网站通过访问该网站的请求头信息是不是合法,某一个IP是不是过于频繁访问等信息来判断是否是非法爬虫访问。如果目标网站判断当前访问为非法爬虫访问,则目标网站可以屏蔽当前访问IP的所有请求。这样对于爬虫来说新的问题产生了,如何能够既抓取数据,又防止目标网站屏蔽呢?目前的方式有两种:

第一种方式:尽量慢的抓取数据,防止触发了目标网站的屏蔽程序。

但这也会带来另一个问题,爬虫放慢了速度必然会降低抓取效率,在一些对数据量要求较大的应用中,放慢抓取速度将无法获得足够信息来满足系统需要。

第二种方式:代理方式。通过代理IP访问目标网站,这样目标网站看到的爬虫的IP为代理的IP地址。这样爬虫就很好的隐藏了自己的真实IP。如果目标网站屏蔽的代理IP,爬虫可以切换到另一个代理IP上去。那这样是不是说只要我们有足够的代理IP就可以无视目标网站屏蔽了呢?答案是否定的,目标网站可以使用路由追踪技术来得到爬虫的真实IP,这样目标网站同样可以得到爬虫的真实IP

总之网络爬虫和目标网站的战争还远没有结束,随着技术的发展这场战争将愈发的精彩。