一、爬虫的简单理解
1. 什么是爬虫?
网络爬虫也叫网络蜘蛛,如果把互联网比喻成一个蜘蛛网,那么蜘蛛就是在网上爬来爬去的蜘蛛,爬虫程序通过请求url地址,根据响应的内容进行解析采集数据, 比如:如果响应内容是html,分析dom结构,进行dom解析、或者正则匹配,如果响应内容是xml/json数据,就可以转数据对象,然后对数据进行解析。
2. 爬虫有什么作用?
通过有效的爬虫手段批量采集数据,可以降低人工成本,提高有效数据量,给予运营/销售的数据支撑,加快产品发展。
3. 爬虫业界的情况
目前互联网产品竞争激烈,业界大部分都会使用爬虫技术对竞品产品的数据进行挖掘、采集、大数据分析,这是必备手段,并且很多公司都设立了爬虫工程师的岗位。
4. 合法性
爬虫是利用程序进行批量爬取网页上的公开信息,也就是前端显示的数据信息。因为信息是完全公开的,所以是合法的。其实就像浏览器一样,浏览器解析响应内容并渲染为页面,而爬虫解析响应内容采集想要的数据进行存储。
5. 反爬虫
爬虫很难完全的制止,道高一尺魔高一丈,这是一场没有硝烟的战争,码农VS码农
反爬虫一些手段:
- 合法检测:请求校验(useragent,referer,接口加签名,等)
- 小黑屋:IP/用户限制请求频率,或者直接拦截
- 投毒:反爬虫高境界可以不用拦截,拦截是一时的,投毒返回虚假数据,可以误导竞品决策
二、通用爬虫
根据使用场景,网络爬虫可分为 通用爬虫和聚焦爬虫 两种.。
1、通用爬虫
通用网络爬虫是捜索引擎(Baidu、Google、Yahoo)抓取系统的重要组成部分。主要⽬的是将互联网上的内容下载到本地,形成整个互联网内容的镜像备份。
⽹络爬虫的基本⼯作流程如下:
- ⾸先选取⼀部分精⼼挑选的种⼦URL;
- 将这些 URL 放⼊待抓取 URL 队列;
- 从待抓取 URL 队列中取出待抓取在 URL,解析 DNS,并且得到主机的 ip,并将 URL 对应的⽹⻚下载下来,存储进已下载⽹⻚库中。此外,将 这些 URL 放进已抓取 URL 队列。
- 分析已抓取 URL 队列中的 URL,分析其中的其他 URL,并且将 URL放⼊ 待抓取 URL 队列,从⽽进⼊下⼀个循环....
2、通⽤搜索引擎(Search Engine)工作原理
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,通常用户户会通过搜索引擎(Yahoo,Google,百度等),来作为访问万维网的入口。
通用网络爬虫 是搜索引擎系统中十分重要的组成部分,它负责从互联网中搜集信息,采集信息,这些搜集信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。
第⼀步:抓取⽹⻚
搜索引擎通过⼀种有特定规律的软件,来跟踪⽹⻚的链接,从⼀个链接爬到另外⼀个链接,像蜘蛛在蜘蛛⽹上爬⾏⼀样,所以被称为“蜘蛛”也被称为“机器⼈”。
但是搜索引擎蜘蛛的爬⾏是被输⼊了⼀定的规则的,它需要遵从⼀些命令或⽂件的内容。
Robots 协议(也称为爬虫协议、机器⼈协议等)的全称是“⽹络爬虫排除标准”(Robots Exclusion Protocol),⽹站通过 Robots 协议告诉搜索引擎哪些⻚⾯可以抓取,哪些⻚⾯不能抓取
https://www.taobao.com/robots...
http://www.qq.com/robots.txt
robots.txt 只是约定,爬虫遵守或者不遵守完全在于爬虫作者的意愿。举个例⼦,公交⻋上贴着「请为⽼弱病残孕让座」,但是⼤部分⼈并不⻅得会遵守。⼀般来讲,只有⼤的搜索引擎爬虫会遵守你⽹站的 robots.txt 协议,其它的爬虫基本都不会看⼀眼你的 robots.txt 写的是什么。
第⼆步:数据存储
搜索引擎是通过蜘蛛跟踪链接爬⾏到⽹⻚,并将爬⾏的数据存⼊原始⻚⾯数据库。其中的⻚⾯数据与⽤户浏览器得到的 HTML 是完全⼀样的。搜索引擎蜘蛛在抓取⻚⾯时,也做⼀定的重复内容检测,⼀旦遇到权重很低的⽹站上有⼤量抄袭、采集或者复制的内容,很可能就不再爬⾏。
第三步:预处理
搜索引擎将蜘蛛抓取回来的⻚⾯,进⾏各种步骤的预处理。
- 提取⽂字
- 中⽂分词
- 去停⽌
- 词
- 消除噪⾳(搜索引擎需要识别并消除这些噪声,⽐如版权声明⽂字、导 航条、⼴告等……)
- 正向索引
- 倒排索
- 引链接关系计算
- 特殊⽂件处理
- ....
除了 HTML组件外,搜索引擎通常还能抓取和索引以⽂字为基础的多种⽂件类型,如 PDF、Word、WPS、XLS、PPT、TXT 组件等。我们在搜索结果中也经常会看到这些⽂件类型。
但搜索引擎还不能处理图片、视频、Flash 这类文字内容,也不能执⾏脚本和程序。
第四步:排名,提供检索服务
搜索引擎是根据⼀定的策略、运⽤特定的计算机程序从互联⽹上搜集信息,在对信息进⾏组织和处理后,为⽤户提供检索服务,将⽤户检索相关的信息展示给⽤户的系统。
但是,这些通⽤性搜索引擎也存在着⼀定的局限性:
- 不同领域、不同背景的⽤户往往具有不同的检索⽬的和需求,通⽤搜索引擎所返回的结果包含⼤量⽤户不关⼼的⽹⻚。
- 通⽤搜索引擎的⽬标是尽可能⼤的⽹络覆盖率,有限的搜索引擎服务器资源与⽆限的⽹络数据资源之间的⽭盾将进⼀步加深。
- 万维⽹数据形式的丰富和⽹络技术的不断发展,图⽚、数据库、⾳频、视频多媒体等不同数据⼤量出现,通⽤搜索引擎往往对这些信息含量密集且具有⼀定结构的数据⽆能为⼒,不能很好地发现和获取。
- 通⽤搜索引擎⼤多提供基于关键字的检索,难以⽀持根据语义信息提出的查询。
三、聚焦爬虫(Focused Crawler)
- 聚焦爬虫,也称主题爬虫(或专业爬虫),是“⾯向特定主题”的⼀种⽹络爬虫程序。它与我们通常所说的爬虫(通⽤爬虫)的区别之处就在于,聚焦爬虫在实施⽹⻚抓取时要进⾏主题筛选。它尽量保证只抓取与主题相关的⽹⻚信息。
- 聚焦⽹络爬虫并不追求⼤的覆盖,⽽将⽬标定为抓取与某⼀特定主题内容相关的⽹⻚,为⾯向主题的⽤户查询准备数据资源。
- 聚焦爬虫的⼯作流程较为复杂,需要根据⼀定的⽹⻚分析算法过滤与主题⽆关的链接,保留有⽤的链接并将其放⼊等待抓取的 URL 队列。然后,它将根据⼀定的搜索策略从队列中选择下⼀步要抓取的⽹⻚URL,并重复上述过程,直到达到系统的某⼀条件时停⽌。
- 另外,所有被爬虫抓取的⽹⻚将会被系统存贮,进⾏⼀定的分析、过滤,并建⽴索引,以便之后的查询和检索;对于聚焦爬虫来说,这⼀过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
以上就是浅析python 通用爬虫和聚焦爬虫的详细内容,更多关于python 爬虫的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/shsxt/p/13497444.html