网络爬虫是哪些?

优采云 发布时间: 2020-06-12 08:02

  互联网诞生之初,是为了使人们更容易的分享数据、交流通信。互联网是桥梁,连接了世界各地的人们。网站的点击、浏览都是人为的,与你聊天的也是血淋淋的人。然而网络爬虫是什么作用,随着技术的发展,人们对数据的渴求,出现了各类网路机器人,这个时侯,你不知道屏幕那端跟你聊天的是一个人还是一条狗,你也不知道你网站的浏览量是人点击下来的,还是机器爬下来的。

  

  表面上看,互联网上是各种各样的人;暗地里,已经遍布了形形色色的网路爬虫。

  一、搜索引擎时代的网路爬虫

  关于网络爬虫的概念,我们先来看看维基百科(Wikipedia)上面的定义:

  网络爬虫(英语:web crawler),也叫网上蜘蛛(spider),是一种拿来手动浏览万维网的网路机器人。其目的通常为编修网路索引。

  这里提及的编撰网路索引,就是搜索引擎干的事情。我们对搜索引擎并不陌生,Google、百度等搜索引擎可能每晚都在帮我们快速获得信息。可能小猿们要问,搜索引擎的工作过程是如何的呢?

  首先,就是有网路爬虫不断抓取各个网站的网页,存放到搜索引擎的数据库;

  接着,索引程序读取数据库的网页进行清除,建立倒排索引;

  最后,搜索程序接收用户的查询关键词,去索引上面找到相关内容,并通过一定的排序算法(Pagerank等)把最相关最好的结果排在最前面呈现给用户。

  看上去简简单单的三个部份,却构成了强悍复杂的搜索引擎系统。而网络爬虫是其中最基础也很重要的一部分,它决定着搜索引擎数据的完整性和丰富性。我们也见到网路爬虫的主要作用是获取数据。

  由此简单地说,网络爬虫就是获取互联网公开数据的自动化工具。

  这里要指出一下,网络爬虫爬取的是互联网上的公开数据,而不是通过特殊技术非法入侵到网站服务器获取的非公开数据。

  可能你要问,什么是“公开数据”呢?简而言之,就是网站上公开使用户浏览、获取的数据。

  虽然数据是公开的,但是当某人或机构(如,搜索引擎)大量搜集那些数据并因而获利时,也会使数据生产方——网站很不爽,由此而形成法律纠纷。比如,早些年Google为此而惹上官司。

  网站们看着搜索引擎由于搜索引擎抓取自己的内容而获利不爽,但也由于搜索引擎带来的流量而高兴不已,于是就出现了网站主动进行搜索引擎优化(SEO, Search Engine Optimization),也就是告诉搜索引擎,我这儿的内容好,快来抓取吧!

  搜索引擎和网站的博弈,催生了一个君子合同: robots.txt。网站在自己的网站上放上这个文件,告诉爬虫什么内容可以抓,哪些内容不可以抓;搜索引擎读取网站的robots.txt来晓得自己的抓取范围,同时也在访问网站时通过User-Agent来向网站表明自己的身分(这种表明也是君子合同,技术上很容易冒充别人),比如,Google的爬虫称作Googlebot,百度的爬虫称作Baiduspider。这样,二者和平共处,互惠互利。

  

  二、大数据时代的网路爬虫

  时代在发展,数据显得越来越重要网络爬虫是什么作用,“大数据”已经成为各行各业讨论的话题,人们对数据的渴求也弄成贪婪,数据也就成了“石油”,爬虫也就成了“钻井机”。

  为了获取石油,人们使用钻井机;为了获取数据,人们使用爬虫。为了获得数据,人们把互联网钻的是“千疮百孔”。哈哈,这里有些夸张。但人们对数据的获取,已经打破的君子协定,和网站们玩起了猫捉老鼠的游戏,展开了道高一尺魔高一丈的交锋。

  为什么说是对决呢?因为大量爬虫的行为会给网站带来网路带宽、服务器估算力等方面很大的压力,却几乎不带来任何利益。为了减少这些毫无利益的压力和防止自己的数据被别人集中搜集,网站肯定要通过技术手段来限制爬虫;另一方面,爬虫为了获取石油般的数据,就想方设法来突破这些限制。

  对于这些对决的理解,还是看血淋淋的事例来得更透彻。

  你有没有花几十块钱使某个软件帮你抢火车票?

  攻: 抢票爬虫会不断访问12306来获得火车票座位数据,并借以订购火车票;

  防: 12306网站出了变态的认证码,人都常常辨识错误。

  各种秒杀使你很受伤!

  攻: 研究网站的秒杀机制,提前写好爬虫,秒杀时刻,人快不过机器;

  防: 有些秒杀的宣传作用很大就懒得防;有些秒杀机制复杂到你很难写出对应的爬虫;有些秒杀成功被发觉作弊也会被取消。

  爬虫显得越来越多,越来越肆无忌惮,网站也不得不使用各类技术手段来严禁或限制爬虫。这些手段大致包括:

  使用帐户保护数据,数据仅对登入用户可见;

  数据多次异步加载;

  限制IP访问频度,甚至封锁IP;

  输入验证码以获得访问权限;

  数据在服务器端加密,浏览器端揭秘;

  ……

  而这种手段也是爬虫在技术实现中要解决和突破的问题。

  

  三、网络爬虫的自我约束

  看完里面“猫捉老鼠”的游戏的描述,小猿们不禁要问,网站和爬虫这些对抗对决会不会导致法律问题?

  这是一个挺好的问题,也是值得每位爬虫开发者思索的问题。

  爬虫作为一种技术本身可能无所谓善恶,但是使用它的人就有善恶之分。如何使用爬虫,爬取的数据怎么使用,都可能形成潜在的法律问题。作为技术开发的小猿们,都应当思索这个问题。无论何种目的,网络爬虫都不能突破法律的底线,同时也有违背一定的准则:

  遵循robots.txt合同;

  避免短时间高并发访问目标网站,避免干扰目标网站的正常运行;

  不要抓取个人信息,比如手机*敏*感*词*等;

  使用抓来的数据注意隐私保护,合法合规。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线