小白都能学会的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网络爬虫—快速入门(理论+实战)(一)

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

  1. python3 [爬虫入门实战]爬虫之scrapy安装与配置教程

    python3 [爬虫入门实战]爬虫之scrapy安装与配置教程 标签: python爬虫scrapy 2017-07-08 15:38 77人阅读 评论(0) 收藏 举报 分类: python3爬虫 ...

  2. python遥感影像地物分类_基于轻量化语义分割网络的遥感图像地物分类方法与流程...

    本发明属于图像处理 技术领域: ,特别涉及一种地物分类方法,可用于土地利用分析.环境保护以及城市规划. 背景技术: :遥感图像地物分类,旨在取代繁琐的人工作业,利用地物分类方法,得到输入遥感图像的地物 ...

  3. python网络爬图_Python爬虫爬图片需要什么

    Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...

  4. 百度新闻爬虫搜索引擎实战---爬虫篇(2)

    爬虫部分 新闻链接爬取(2) 书接上回,我们获取到了使用动态加载技术加载的新闻链接,但是,有些不是动态加载的新闻链接,我们还没有处理.我们将doc类型文档拷贝下来,放入HBuilder X编辑器中,然 ...

  5. 百度新闻爬虫搜索引擎实战---爬虫篇(1)

    爬虫部分 首先,我们得爬取百度新闻的信息. 爬虫分为两部分: 获取新闻链接 通过链接爬取新闻信息 新闻链接爬取(1) 1.获取新闻链接 1.1 分析请求 打开chrome浏览器,输入百度新闻链接,按F ...

  6. python3 [爬虫入门实战]爬虫之scrapy爬取织梦者网站并存mongoDB

    主要爬取了编程栏目里的其他编程里的36638条数据 过程是自己一步一步的往下写的,有不懂的也是一边找笔记,一边百度,一边调试. 遗憾:没有进行多栏目数据的爬取,只爬了一个栏目的数据,希望有想法的有钻研 ...

  7. python3 [爬虫入门实战]爬虫之mongoDB数据库的安装配置与可视化

    从安装过程到可视化工具可查看数据信息,历时两天,昨天坐了一天的火车,今天早上才到的青岛–> 来放松心情. 前天说是要学习如何使用mongoDB的链接与安装. 到今天过去了将一天, 不过还是在函兮 ...

  8. 第一篇个人博客:python爬虫的实战——书籍下载链接查找

    爬虫的实战 #爬虫实战内容简介 此次爬虫实战,为了完成小组项目中的一小部分功能--对于书籍资料的查找.我们是对于书籍网站进行访问,然后查找到想要的书籍,并且查找到下载地址.这个时候就需要对HTML进行 ...

  9. python网络编程实战_Python 异步网络编程实战

    近年来 Python 的发展的非常迅速,"简单"."高效"是 Python 吸引人的一大特色.在国内 Python 开发需求越来越大,Python 具有丰富强大 ...

最新文章

  1. 冯小刚导演系列公益短片之林心如版
  2. 任务——μ/COS-II读书笔记
  3. matlab var求方差
  4. Linux在超级计算机领域一统天下
  5. 从网络读取数据并动态的显示在ListView中
  6. python 提取元组中的值_Python中的sqlite3提取与元组中的值相对应的条目 - python
  7. 在大量数据迁移期间oracle学习笔记
  8. Hyperledger Fabric 实战(八):couchdb 丰富查询 selector 语法
  9. php floor,ceil,round,intval函数
  10. Matlab简单教程:条件分支
  11. python 导入离线地图_PyQGIS开发 -- 离线地图
  12. 吉投资管系统搭建仅用于盘手培训
  13. 《穷查理宝典》读书摘要和思维导图
  14. JAVA 获取今天、昨天、上周等日期
  15. AcWing蓝桥杯AB组辅导课07、贪心
  16. python如何做敏感度分析_1stopt、matlab和python用morris、sobol方法实现参数敏感性分析...
  17. 为什么电脑唯独搜不到自己家wifi?
  18. Vue项目 课程列表页 跳转 课程详情页 跳转 视频播放页
  19. 2021011206贾天乐实验五
  20. 新颖的基于BS结构的毕业设计题目50例

热门文章

  1. 台风怎么看内存颗粒_头像不显示,朋友圈看不了…微信内存满了怎么办?
  2. ubuntu的鼠标倒置解决步骤
  3. 自研基于monolog的Laravel日志代码
  4. 字节顺序标记(ByteOrderMark)BOM
  5. UninstallTool(Windows软件卸载工具)--快捷、方便卸载电脑中的软件
  6. word中在页脚设置第几页,共几页
  7. 新零售兴起,来凑热闹的船歌鱼水饺能走多远?
  8. zookeeper的“江湖之路”
  9. 4.设置主轴方向,背景图二倍图,弹性盒子换行,多行侧轴对齐方式
  10. video增加中间播放按钮