(二)python网络爬虫(理论+实战)——爬虫分类和基本流程

 小白都能学会的python网络爬虫专栏

      https://blog.csdn.net/c1007857613/category_12127982.html


序言

      本人从事爬虫相关工作已8年以上,从一个小白到能够熟练使用爬虫,中间也走了些弯路,希望以自身的学习经历,让大家能够轻而易举的,快速的,掌握爬虫的相关知识并熟练的使用它,避免浪费更多的无用时间,甚至走很大的弯路。欢迎大家留言,一起交流讨论


2 爬虫概述——深入认识

     2.1 爬虫的分类

              爬虫从爬取范围上来看,可以分为通用爬虫主题爬虫

        其中,通用爬虫是指搜索引擎使用的爬虫系统。它的目标是尽可能把互联网上所有网页下载来。它的做法主要是将网页以快照的形式保存在服务器上,进行关键字提取和垃圾数据剔除,提供用户一个访问的方式。

 通用爬虫有一些局限性,其中主要包括:

(1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。

(2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。

(3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频/视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。

(4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。

  主题爬虫也称为聚焦爬虫、定向爬虫。它的目标是抓取与某一特定主题内容相关的网页。

  主题爬虫的核心在于主题模型,根据对主题模型的不同处理方法,可以将主题爬虫分为以下三种:

1)简单关键词的主题爬虫

2)语义型爬虫

3)学习型爬虫 

 解析来,我们看下,这几种爬虫:

1)简单关键词的主题爬虫

        关键词法以一组特征关键词来表示主题内容,包括用户需求主题以及文档内容主题,一个关键词可以是单个的词、短语,包括权重、语种等属性。

      通过计算主题词文本相似度得到内容相关度。这种爬虫的文本相似度是用信息相似度模型来计算的,这些模型主要有布尔型模型和向量空间模型(VSM)等。 

2)语义型爬虫

      在关键词法的基础上,在相似度计算时采用语义方法,例如可以判断“软件”“硬件”这两个词汇的相关度。

        这种爬虫的相似度计算需要额外的知识支持。一般采用本体来计算,常用的知识库包括知网(HowNet)、WordNet等。这些知识库包含通用型知识,而对于专业知识的本体较少,因此,语义型爬虫的能力也会受到限制。  

3)学习型爬虫 

      不提供关键词,而是提供一些代表性的文档,这些文档描述同一个主题, 主题建模自动从这些文档推理出主题描述,通常是包含词汇及其权重。这样可以避免简单关键词方式所存在的不准确、不完整等问题。

在以上3种爬虫中,使用较多的是关键词的主题爬虫和语义型爬虫,学习型爬虫开发难度大,涉及到主题模型的建立。


 2.2 爬虫的基本流程

爬虫的基本流程示意图

         这里就涉及到爬虫的几个基本过程,这里一一讲解:

       1)发送请求 

         通过HTTP向目标网站发送请求,也就是发送一个request,请求中会包含header等信息。目标     网站的服务器收到请求后,会做相应的处理,然后将处理结果返回给请求者,也就是返回一个  response。

         request中包含:  

          请求方式:GET/POST两种类型常用,另外还HEAD、PUT、DELETE等。  

                 GET:请求的数据在url中,用于读取数据,  

                 POST:请求的数据在header中,用于提交数据,请求服务器进行处理。

        请求的url:统一资源定位符,也就是我们说的网址。互联网上的每个页面、每个文件都有一个唯一的url。爬取数据时必须要有一个目标的url才可以获取数据,因此,它是爬虫获取数据的基本依据。

         请求头:header,包含请求信息,如user-agent,host,cookies等。      

        请求体:请求中要向服务器提交的数据。

   2)获取响应内容

         获取响应内容就是获取服务返回的response,response一般包含:  

        响应状态:如:200代表成功,404找不到页面,502服务器错误。常用的HTTP状态码,可以参考如下网址:    https://blog.csdn.net/t_332741160/article/details/81408597  

        响应头:reponse header.包含返回的内容类型,长度,数据编码格式,cookies等。  

        响应体:主要包含返回的数据,如html网页,二进制数据等。 

   3)解析内容

        根据返回的数据格式和目标,选择相应的技术,方法进行处理:

        (1)直接处理  

        (2)json解析  

        (3)正则表达式提取  

        (4)BeautifulSoup解析等

   4)保存数据

        根据后续分析和使用数据的需求,将解析的数据保存为相应的格式:  

         文本形式:如txt文件、json文件、xml等;  

        关系性数据库:mysql,oracle,sql server等结构化数据库;  

        非关系型数据库:mongoDB,redis等key-value形式存储。


总结

         这一节主要介绍了爬虫的基本分类,以及爬虫的基本流程,内容重点是爬虫的基本流程,理解这个流程,爬虫的思想和过程基本就掌握了,这对后续的爬虫编写大有裨益

        如对文章内容有疑问或者需要全套的学习资料(配套PPT和本课程的所有项目源码)的,欢迎大家留言。

上一篇:python网络爬虫—快速入门(理论+实战)(一)

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光宅男xxb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值