如果现在的你返回N年前去重新学习一门技能,你会咋做? 我会这么干: ...哦,原来这个本事学完可以成为恋爱大神啊, 我要掌握精髓需要这么几个要点一二三四..... 具体的学习步骤是这样的一二三.... 最后肯定比周围的小弟弟妹妹们牛逼,因为高度不一样啊! *理论现行,脑袋决定高度! 如果初学者可以略过直接使用,以后熟悉了再回来看! 我得当大神...
重点在这里: 了解
通用爬虫
和 聚焦爬虫
根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫
两种
通用爬虫:
搜索引擎用的爬虫系统
通用搜索引擎(Search Engine)工作原理
:
通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
就是尽可能的吧互联网上的网页下载下来,放在本地服务器里形成备份,在对这些网页做相关处理,(提取关键字,去掉广告),最后提供一个用户检索接口!
第一步: 抓取网页:
- 首选选取一部分已有的URL,把这些URL放到待爬取队列。
- 从队列里取出这些URL,然后解析DNS得到主机IP,然后去这个IP对应的服务器里下载HTML页面,保存到搜索引擎的本地服务器。之后把这个爬过的URL放入已爬取队列。
- 分析这些网页内容,找出网页里其他的URL连接,继续执行第二步,直到爬取条件结束。
搜索引擎如何获取一个新的网站的URL地址?
- 主动向搜索引擎提交网址: 百度链接提交
- 在其他网站里设置网站的外链。
- 搜索引擎会和DNS服务商进行合作,可以快速收录新的网站。
DNS: 就是把域名解析成IP地址的一种技术! DNS域名解析如果感兴趣我可以写一篇文章专门介绍! 老菜鸟可能会不屑一看.....
通用爬虫并不是万物皆可爬,它也需要遵守规则:Robots协议
:协议会指明通用爬虫可以爬取网页的权限。Robots.txt 只是一个建议。并不是所有爬虫都遵守,一般只有大型的搜索引擎爬虫才会遵守。 咱们个人写的爬虫,就不管了。
Robots协议(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,例如:
淘宝网:https://www.taobao.com/robots.txt
腾讯网: http://www.qq.com/robots.txt
第二步: 数据存储
搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。
搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步: 预处理
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。
提取文字
中文分词
消除噪音(比如版权声明文字、导航条、广告等……)
索引处理
链接关系计算
特殊文件处理
....
除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。
但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。
第四步: 提供检索服务,网站排名
搜索引擎排名:
PageRank值
:根据网站的流量(点击量/浏览量/人气)统计,流量越高,网站也越值钱,排名越靠前。- 竞价排名:谁给钱多,谁排名就高。
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。
同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,这样Rank值高的网站在搜索结果中会排名较前,当然也可以直接使用 Money 购买搜索引擎网站排名,简单粗暴。
通用爬虫的缺点:
- 只能提供和文本相关的内容(HTML、Word、PDF)等等,但是不能提供多媒体文件(音乐、图片、视频)和二进制文件(程序、脚本)等等。
- 通用搜索引擎所返回的结果都是网页,而大多情况下,网页里90%的内容对用户来说都是无用的
- 不能针对不同背景领域的人提供不同的搜索结果。
- 不能理解人类语义上的检索。通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询,无法准确理解用户的具体需求。
为了解决这个问题,聚焦爬虫出现了:
聚焦爬虫
聚焦爬虫
: 爬虫程序员写的针对某种内容的爬虫。
面向主题爬虫,面向需求爬虫:会针对某种特定的内容去爬取信息,而且会保证信息和需求尽可能相关。