2021-09-29

随手记——爬虫是什么?

爬虫是什么?

网络爬虫,跟着python火了。这个概念能追述到万维网-互联王诞生之时。

在我们没有搜索引擎的时候,互联网只是集合了全部文件传输站点,用户只能手动查找需要的文件。最开始还是能很快找到想要的文件,但是随着文件数量的增多,在大量的文件中手动查找无异于大海捞针。为了快速找到目标文件,人们创造了自动化的探测程序,就是网络爬虫。

网络爬虫简称爬虫,也叫网络蜘蛛、网络蚂蚁、网络机器人等,可以代替人类自动在互联网中进行数据信息的采集与整理。当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。使用Python可以很方便地编写出爬虫程序,进行互联网信息的自动化检索。

**爬虫每天穿梭在互联网的每个角落,把分散的数据记录到数据库中。**搜索引擎在网络爬虫的基础上,为人们提供查找平台。搜索引擎离不开爬虫,比如百度搜索引擎的爬虫叫作百度蜘蛛(Baiduspider)。

所以,我们在研究爬虫的时候,不仅要:

  • 了解爬虫如何实现;
  • 还需要知道一些常见爬虫的算法;
  • 如果有必要,我们还需要自己去制定相应的算法。

爬虫在提高网络覆盖率上功不可没,但是它也可以是**“害虫”**的角色。比如:逢年过节买车票买机票时,我们就能体会到被爬虫支配的恐惧。平台放出车票,票贩子利用爬虫,大量抢票,然后高价转手给非常需要车票的人,找到买家后,放出车票,再利用爬虫将车票抢到,把购买人填为买家。

没有爬虫就没有清晰便捷的互联网冲浪通道,科技无罪,有罪的是那些动歪脑筋的人。

  • PS:网络覆盖率:截止2020年3月我们国家网络使用用户达到9.04亿。网络覆盖率达到64.5%。

学习爬虫为我们带来那些便利?

  1. 学习爬虫,可以私人定制一个搜索引擎,可以对搜索引擎的数据采集原理有更深层次的理解。

    需要设计:

    • 信息怎么爬取
    • 怎么存储
    • 怎么分词
    • 怎么进行相关性计算
  2. 获得数据源。

    在进行大数据分析或者进行数据挖掘的时候,数据源可以从某些提供数据统计的网站获得, 也可以从某些文献或内部资料中获得。但是这些获得数据的方式,有时很难满足我们对数据的需求,而手动从互联网中去寻找这些数据,则耗费的精力过大——此时就可以利用爬虫技术,自动地从互联网中获取我们感兴趣的数据内容,并将这些数据内容爬取回来,作为我们的数据源,从而进行更深层次的数据分析,并获得更多有价值的信息。

爬虫的组成

  • 控制节点:也叫作爬虫的中央控制器,主要负责根据URL地址分配线程,并调用爬虫节点进行具体的爬行。

  • 爬虫节点:按照相关的算法,对网页进行具体的爬行,主要包括下载网页以及对网页的文本进行处理;爬行后,会将对应的爬行结果存储到对应的资源库中。

  • 资源库

网络爬虫中可以有多个控制节点,每个控制节点下可以有多个爬虫节点;控制节点之间可以互相通信;同时,控制节点和其下的各爬虫节点之间也可以进行互相通信;属于同一个控制节点下的各爬虫节点间,亦可以互相通信。

爬虫的分类:一个完整的爬虫系统存在集中类型的虫。

网络爬虫类型目标资源定位搜集数据类型用途爬行策略
通用网络爬虫在全互联网中。什么数据都搜集主要用于搜索引擎。主要有深度优先爬行策略
广度优先爬行策略。
聚焦网络爬虫/主题网络爬虫将爬取的目标网页定位在与主题相关的页面中。收集特定主题的数据满足特定人群的需求。基于内容评价的爬行策略
基于链接评价的爬行策略
基于增强学习的爬行策略
基于语境图的爬行策略
增量式网络爬虫只爬取内容发生变化的网页或者新产生的网页。-更新数据。-
深层网络爬虫互联网中的深层页面填写表单。基于领域知识的表单填写
基于网页结构分析的表单填写
  • PS:深度页面:在互联网中,网页按存在方式分类,可以分为表层页面和深层页面。所谓的表层页面,指的是不需要提交表单,使用静态的链接就能够到达的静态页面;而深层页面则隐藏在表单后面,不能通过静态链接直接获取,是需要提交一定的关键词之后才能够获取得到的页面。在互联网中,深层页面的数量往往比表层页面的数量要多很多,故而,我们需要想办法爬取深层页面。

搜索引擎的核心工作流程

首先,搜索引擎会利用爬虫模块去爬取互联网中的网页,然后将爬取到的网页存储在原始数据库中。爬虫模块主要包括控制器和爬行器,控制器主要进行爬行的控制,爬行器则负责具体的爬行任务。

然后,会对原始数据库中的数据进行索引,并存储到索引数据库中。

当用户检索信息的时候,会通过用户交互接口输入对应的信息,用户交互接口相当于搜索引擎的输入框,输入完成之后,由检索器进行分词等操作,检索器会从索引数据库中获取数据进行相应的检索处理。

用户输入对应信息的同时,会将用户的行为存储到用户日志数据库中,比如用户的IP地址、用户所输入的关键词等等。随后,用户日志数据库中的数据会交由日志分析器进行处理。日志分析器会根据大量的用户数据去调整原始数据库索引数据库,改变排名结果或进行其他操作。

Python爬虫的架构

  • 调试器:相当于电脑的CPU,主要负责调度URL管理器,下载器,解析器之间的协调工作。
  • URL管理器:包括待爬取的URL地址和已爬取的地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式(通过内存、数据库、缓存数据库来实现)。
  • 网页下载器:通过传入URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2(python官方基础模块)包括需要登录、代理、和cookie,requests(第三方包)。
  • 网页解析器:将一个网页字符串进行解析,按照我们的要求提取信息,也可以根据DOM树的解析方式来解析。
  • 应用程序(爬取有价值的数据):就是从网页中提取的有用数据组成的一个应用。

参考文章

csdn:

https://blog.csdn.net/sinat_38682860/article/details/89255020

知乎:

https://zhuanlan.zhihu.com/p/95049019

其他:

http://www.360doc.com/content/20/0902/14/9422167_933591914.shtml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值