爬⾍的分类
内容的镜像备份。通⽤爬⾍把⽹站的整个页⾯数据抓取下来,如果⽹站有js渲染、ajax等技术加载的页⾯的部分数据是抓不到的,对⽤户来说通⽤爬⾍抓取的数据80%都是没有的。例⼦:百度快照
提⽰:
搜索引擎并不是收录全球所有的⽹站,被搜索引擎收录的只有20%,80%没有被收录的⽹站叫深⽹(Deep Web),深⽹最底层⼜有⼀部分⽹站叫做暗⽹,暗⽹上很多⾮法交易(如著名的暗⽹丝绸之路),交易使⽤的都是⽐特币,暗⽹是深⽹(Deep Web)的⼀个⼦集,属于深⽹的⼀⼩部分,⼤部分深⽹和暗⽹⾛的都是不标准的http和https协议,但是通⽤爬⾍也是可以爬取,只是搜索引擎不知道它们的服务器地址。
通⽤搜索引擎(Search Engine)⼯作原理
通⽤⽹络爬⾍从互联⽹中搜集⽹页,采集信息,这些⽹页信息⽤于为搜索引擎建⽴索引从⽽提供⽀持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。
第⼀步:抓取⽹页
搜索引擎⽹络爬⾍的基本⼯作流程如下:
1. ⾸先选取⼀部分的种⼦URL,将这些URL放⼊待抓取URL队列;
2. 取出待抓取URL,解析DNS得到主机的IP,并将URL对应的⽹页下载下来,存储进已下载⽹页库中,并且将这些URL放进已抓取URL队列。
3. 分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放⼊待抓取URL队列,从⽽进⼊下⼀个循环....
搜索引擎如何获取⼀个新⽹站的URL:图片下载站源码
1.
2. 在其他⽹站上设置新⽹站外链(尽可能处于搜索引擎爬⾍爬取范围)
3. 搜索引擎和DNS解析服务商(如DNSPod等)合作,新⽹站域名将被迅速抓取。
但是搜索引擎蜘蛛的爬⾏是被输⼊了⼀定的规则的,它需要遵从⼀些命令或⽂件的内容,如标注为nofollow的链接,或者是Robots协议。
Robots协议(也叫爬⾍协议、机器⼈协议等),全称是“⽹络爬⾍排除标准”(Robots Exclusion Protocol),⽹站通过Robots协议告诉搜索引擎哪些页⾯可以抓取,哪些页⾯不能抓取,例如:
第⼆步:数据存储
搜索引擎通过爬⾍爬取到的⽹页,将数据存⼊原始页⾯数据库。其中的页⾯数据与⽤户浏览器得到的HTML(⽹页源代码)是完全⼀样的。
Money 购买搜索引擎⽹站排名,简单粗暴。
Google搜索引擎的⼯作原理
通⽤性搜索引擎也存在着⼀定的局限性
聚焦爬⾍
聚焦爬⾍,是"⾯向特定主题需求"的⼀种⽹络爬⾍程序,它与通⽤搜索引擎爬⾍的区别在于: 聚焦爬⾍在实施⽹页抓取时会对内容进⾏处理筛选,尽量保证只抓取与需求相关的⽹页信息。
⽐如:淘宝上的商品信息,我们可以根据业务需求只抓取价格等对我们有⽤信息,其他⽆关紧要的信息不抓取(即过滤筛选)
聚焦爬⾍是有⽬标有针对性的抓取数据,⽽通⽤爬⾍则是所有的都抓取。
爬⾍⼯作原理
爬⾍的⼯作原理很简单⼀共就分四步,可能有些⽹站(即爬⾍项⽬需求)不需要四步就能搞定或者更多但是⼀般爬⾍就四步!
第⼀步 抓取⽹页
1. 按照⾃⼰的需求到需要抓取的⽹站。
2. 通过抓包或者其他⽅式到需要抓取的数据的url(链接请求)。
3. ⽤编程语⾔中爬⾍相关的⼀些库对这个或者这些url链接发送请求就⾏,不过爬⾍得到的结果⼀般是HTML⽹页源代码或者json数据,对于图
⽚、视频、⾳乐等多媒体⽂件来说爬⾍发送请求后得到的是⼆进制数据流。
第⼆步 提取相关信息
抓取到⽹页源代码或者json数据,我们需要通过正则表达式、xpath、css选择器等数据提取库来提取我们需要的数据,对于请求的多媒体⽂件因为返回的⽂件⼆进制流,所以我们可以不⽤提取,直接保存多媒体⽂件相应的⽂件格式就能得到对应的多媒体⽂件。
第三步 预处理
对于我们提取的数据它可能不⼲净或者说不是我们想要的格式,这时我们就需要数据预处理,常⽤的预处理有去空⽩去换⾏等等
第四步 数据存储
预处理完数据得到了最终的数据,我们需要把数据存到数据库或者存储为txt、excel、csv、json等格式的⽂件数据,针对不同的情况我们可以选择不同的存储⽅式,⽐如说存到数据库既可以存到sqlserver、mysql等关系型数据库也可以存到mongodb、redis等⾮关系数据库。
爬⾍与⿊客的区别
其实爬⾍和⿊客有本质的区别,爬⾍的本质跟正常⽤户在浏览器访问⽹站没什么太⼤区别,只不过是通过程序的⽅式访问特定的链接⽬标精确(不需要请求跟⽬标数据⽆关的请求),所以速度⽐正常在浏览器访问要快很多,并且爬⾍可以批量访问特定的数据⽽浏览器不⾏,对于⼀些需要登陆或者某些权限才能访问的⽹站,爬⾍也需要账号或者某些权限的⽀持才能抓取到相关数据,但是⿊客技术却不是这样,⿊客可以通过⿊客技术可能不需要登陆或者获得某些权限就能直接拿到⽹站数据,还可以拿到⽹站上看不到的数据。
爬⾍跟⿊客也有类似的地⽅,⽐如爬⾍也可以作为⼀种攻击⼿段,⾼频率的爬⾍请求会对服务器进⾏攻击,对服务器造成压⼒,服务器响应不过来就会宕机(DDOS攻击)。
爬⾍对⽹站的利弊
也许你会认为爬⾍对于⽹站⽽⾔只有弊没有利,其实并不是这样,虽然爬⾍⼤量的采集⽹站信息会造
成别⼈⽹站好不容易做出来的信息数据被窃取,并且⾼频率的爬⾍访问会对⽹站服务器进⾏攻击,服务器响应不过来会宕机,但是爬⾍也不尽是坏处,对于⼩⽹站来说爬⾍的爬取可以提⾼其⽹站的访问量(12306⽹站⼀天访问量上亿其实有80%的流量是爬⾍提供的),⽹站的搜索排名其实就是尽可能让通⽤爬⾍(搜索引擎爬⾍)抓取来提升排名(SEO⽅式的⼀种),所以很多⽹站都会权衡利弊来做出相应的反爬⾍措施。
应⽤场景
爬⾍最直观的应⽤肯定是抓取数据,但是爬⾍不仅能抓取数据还能够完成我们在浏览器上的⼀些操作,⽐如说:抢票、、⽹上投票、抢购等,这⼀类操作⽤户都能在浏览器上操作完成,只是爬⾍能够更直接更快速⽽且可以批量执⾏相关操作,理论上来说⽹站上可见数据或者能够执⾏的操作爬⾍都是可以爬取和操作的,为什么说是理论上说呢?因为有些⽹站会设置各种反爬⾍机制,能不能抓取到数据就看你能不能破解它的反爬机制。
爬⾍不仅仅只能抓取⽹站,app数据或者电脑软件数据等也是可以抓取的,这是因为⽹站、app、电脑软件等后台的数据更新都是发送请求,只要到相关请求爬⾍就可以抓取
爬⾍技术
爬⾍技术因为太多就不⼀⼀写出来了,放⼀张Python爬⾍技术知识点思维导图看起来更加简单明了!
爬⾍难点
爬⾍的难点主要在于⽹站的反爬机制,其次⾼并发、海量抓取也是爬⾍开发的难点之⼀。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。