网络爬虫到底是什么,网络爬虫包括
2019独角兽企业招聘Python工程师标准
互联网的诞生是为了让人们更容易分享数据和交流。互联网是连接全世界人民的桥梁。网站的点击和浏览都是人为的,和你聊天的人也是活生生的人。但是随着技术的发展,人们对数据的渴望导致了各种网络机器人的出现。这时候你不知道屏幕另一端是人还是狗在和你聊天,也不知道你网站的浏览量是人点击的还是机器抓取的。
表面上看,网上什么人都有;暗地里有各种各样的网络爬虫。
一、搜索引擎时代的网络爬虫
关于网络爬虫的概念,我们先来看看维基百科上的定义:
网络爬虫(英文:Web crawler),也叫Web spider,是一种用于自动浏览万维网的网络机器人。其目的一般是编制网络索引。
这里说的网络索引的编制,就是搜索引擎做的事情。我们对搜索引擎并不陌生。谷歌,百度和其他搜索引擎可能会帮助我们每天快速获取信息。也许猿们要问了,搜索引擎的工作流程是怎样的?
首先,有网络爬虫不断抓取各种网站的网页,存储在搜索引擎的数据库中;然后,索引程序读取数据库的网页进行清理,建立倒排索引;最后,搜索程序接收用户的查询关键词,在索引中找到相关内容,通过一定的排名算法(Pagerank等)将最相关、最好的结果呈现在最前面的用户面前。).
看似简单的三个部分,构成了一个强大而复杂的搜索引擎系统。网络爬虫是最基础也是最重要的部分,它决定了搜索引擎数据的完整性和丰富性。我们也看到网络爬虫的主要功能是获取数据。
简单来说,网络爬虫是一种从互联网上获取公共数据的自动化工具。
这里需要强调的是,网络爬虫抓取的是互联网上的公开数据,而不是通过特殊技术非法入侵网站服务器获得的非公开数据。
你可能会问,什么是“开放数据”?简而言之,就是用户可以在网站上公开浏览获取的数据。
虽然数据是公开的,但是当某个人或某个机构(比如搜索引擎)大量收集这些数据并从中获利时,也会让数据生产者3354的网站很不高兴,从而产生法律纠纷。比如早些年,谷歌就惹上了官司。
网站看着搜索引擎盈利是因为搜索引擎抢了自己的内容而不开心,但也因为搜索引擎带来的流量而很开心。于是,网站主动进行搜索引擎优化(SEO),也就是告诉搜索引擎我这里的内容不错。快来抢!
搜索引擎和网站的博弈,催生了君子协定:robots.txt把这个文件放到你的网站上,告诉爬虫什么能抓,什么不能抓;搜索引擎读取网站的robots.txt,了解其抓取范围,同时在访问网站时通过User-Agent向网站表明身份(这种表明也是君子协定,技术上很容易伪装成别人)。比如谷歌的爬虫叫Googlebot,百度的爬虫叫Baiduspider。这样两者才能和平共处,互惠互利。
二、大数据时代的网络爬虫
随着时代的发展,数据越来越重要,“大数据”成为各行各业讨论的话题。人们对数据的欲望变得贪婪,数据变成了“石油”,爬虫变成了“钻机”。
为了得到石油,人们使用钻机;为了获取数据,人们使用爬虫。为了获取数据,人们在互联网上钻“洞”。哈哈,这里有些夸张。然而,人们对数据的获取,君子协定的打破,和各网站玩起了猫捉老鼠的游戏,展开了“一个比一个高一尺”的较量。
为什么是竞赛?因为大量爬虫的行为会在网络带宽、服务器计算能力等方面给网站带来很大压力。但几乎不会带来任何好处。为了减少这种无利可图的压力,避免自己的数据被他人集中收集,网站必须通过技术手段限制爬虫;另一方面,为了获得类油数据,爬行动物想尽办法突破这一限制。
对于这个大赛的理解,还是看活生生的例子比较好。
你是不是花了几十块钱买了一些软件帮你抢火车票?攻击:抢票爬虫会不断访问12306获取火车票的座位数据,进而购买火车票;防范:12306网站验证码异常,经常有人出错。各种秒杀疼你!攻击:研究网站的秒杀机制,提前写好爬虫,秒杀瞬间,人打不过机器;预防:有些秒杀因为宣传效果大,懒得预防;有些秒杀机制太复杂,你很难写出相应的爬虫;如果发现作弊,一些成功的秒杀将被取消。爬虫越来越肆无忌惮,网站不得不使用各种技术手段禁止或限制爬虫。这些手段大致包括:
用账号保护数据,只有登录用户可见;数据的多次异步加载;限制IP访问频率,甚至屏蔽IP;输入验证码以获得访问权限;在服务器端加密数据,在浏览器端解密;而这些手段也是爬虫在技术实现上要解决和突破的问题。
三、网络爬虫的自我约束
看了上面“猫和老鼠”游戏的描述,小猿不禁要问,网站和爬虫的这种对抗会不会引发法律问题?这是一个很好的问题,也是值得每一个爬虫开发者思考的问题。
爬虫作为一种技术,本身可能是无所谓善恶的,但是使用它的人是分善恶的。如何使用爬虫以及如何使用爬取的数据可能会引起潜在的法律问题。作为技术发展类人猿,每个人都应该思考这个问题。无论出于什么目的,网络爬虫都不能突破法律的底线,同时也要遵守一定的规则:
遵循robots.txt协议;避免短时间内对目标网站的高并发访问,避免干扰目标网站的正常运行;不要抓取个人信息,比如手机通讯录等。使用捕获的数据时,请注意隐私保护和法律合规性。
如果你还在编程的世界里迷茫,不知道自己未来的打算,可以加入我们Python学习扣扣群:784758214,看看gsdym是怎么学习的!交流经验!我是一名高级python开发工程师,整理了从基础python脚本到web开发、爬虫、django、人工智能、数据挖掘等资料。从零基础到实际项目。送给每一个python朋友!分享一些学习方法和需要注意的小细节。这是python学习者的聚集地。
点击:python技术分享
转载于:https://my.oschina.net/u/4125355/blog/3045618
历史提交的图片或压缩文件
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。