今天主要学习了爬虫的基本架构,下边做一下总结:

1.首先要有一个爬虫调度端,来启动爬虫、停止爬虫或者是监视爬虫的运行情况,在爬虫程序中有三个模块,首先是URL管理器来对将要爬取的URL以及爬取过的URL这两个数据的管理,从URL管理器中,我们可以取出一个待爬取的URL,将其传送给网页下载器,下载器会将URL指定的网页下载下来存储成一个字符串,这个字符串会传送给网页解析器进行解析,一方面会解析出有价值的数据,另一方面,每个网页都有很多指向其他网页的URL,这些URL被解析出来之后,可以补充进URL管理器,URL管理器,网页下载器,网页解析器,这三个模块,就形成了一个循环,只要有相关联的URL,就会一直运行下去,以上这些模块就组成了一个简单的爬虫架构,这个架构的运行,就可以将互联网上相关联的网页都爬取下来。

2.给大家讲一下爬虫架构的运行流程:首先是调度器向URL管理器发出询问请求,问是否有待爬取的URL,然后URL管理器会返回一个信息(是或否)给调度器,如果有待爬取的URL的话,调度器会进一步发出获取待爬取URL的指令,URL管理器接收到该指令后,会将待爬取的URL发送给调度器,紧接着,调度器会将此URL传送给下载器,命令下载器下载URL所指向的内容,下载器下载完成后,会将下载内容返回给调度器,然后调度器接收到下载内容后会将其传送给解析器,解析器会将解析完的内容(包括价值数据、新的URL)返回给调度器,调度器将解析后的内容进行一系列操作,比如说存储下来,若有新的URL在解析内容中,又会重复以上步骤。

3.URL管理器的作用:管理好待爬取的URL集合以及已爬取的URL集合,防止重复抓取以及循环抓取。

4.URL管理器的实现方式主要有三种:(1)存放在内存之中  Python内存 待抓取URL集合:set()

                                 已抓取URL集合:set()

                 (2)存放在关系数据库MySQL url(url,is_crawled)

                 (3)存放在缓存数据库redis     待抓取URL集合:set

已抓取URL集合:set

5.网页下载器:通俗的讲,网页下载器就是将网页内容下载到本地计算机的工具,将网页内容保存为本地文件或者内存字符串

python主要有两种网页下载器:urllib2和requests(这个今天学的不是很理解,以后在慢慢解释)

以上就是今天所学内容,因为是初学阶段,在一些方面可能理解的不是很确切,还请多多指正,大家共同学习,一起进步,谢谢。

python-day2爬虫基础之爬虫基本架构的更多相关文章

  1. python,Day2,基础 2

    list和dict list是一种有序的集合,可以随时添加和删除其中的元素. 例如: >>>classmates = ['eason','grace','alice'] >&g ...

  2. Python——Day2(基础知识练习一)

    1.执行Python脚本的两种方式1)调用解释器 Python +绝对路径+文件名称2)调用解释器 Python +相对路径+文件名称 2.简述位.字节的关系8位为1个字节 3.简述ASCII.uni ...

  3. 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)

    一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...

  4. Python爬虫基础

    前言 Python非常适合用来开发网页爬虫,理由如下: 1.抓取网页本身的接口 相比与其他静态编程语言,如java,c#,c++,python抓取网页文档的接口更简洁:相比其他动态脚本语言,如perl ...

  5. python 3.x 爬虫基础---Urllib详解

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

  6. python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...

  7. python从爬虫基础到爬取网络小说实例

    一.爬虫基础 1.1 requests类 1.1.1 request的7个方法 requests.request() 实例化一个对象,拥有以下方法 requests.get(url, *args) r ...

  8. python爬虫-基础入门-python爬虫突破封锁

    python爬虫-基础入门-python爬虫突破封锁 >> 相关概念 >> request概念:是从客户端向服务器发出请求,包括用户提交的信息及客户端的一些信息.客户端可通过H ...

  9. python爬虫-基础入门-爬取整个网站《3》

    python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python ...

随机推荐

  1. Linux基础学习准备

    Linux 基础学习准备 工欲善其事必先利其器,还是买个服务器折腾比较好. 虚拟机和镜像 推荐吾爱的:吾爱虚拟机2.0 CentOS镜像: Centos国内下载源 http://man.linuxde ...

  2. jmeter --- 压测时,如何让串联压测多个接口

    1.新建测试计划,在测试计划里勾选“独立运行每个线程组” 2.分别在每个线程组,添加聚合报告,以得到每个线程组的压测结果 3.设置不同接口压测的vu等,并为每个线程组,设置合理的启动延迟时间

  3. UVA - 12230 Crossing Rivers(过河)(期望)

    题意:从A到B需要经过n条河,已知AB间距离D和每条河的长度L以及在该条河上的船速v,求A到B平均情况下需多长时间.陆地行走速度为1,船的位置和朝向均匀随机. 分析: 1.过一条河,最短时间L/v(无 ...

  4. 小程序实现倒计时:解决ios倒计时失效(setInterval失效)

    在使用之前需要先在page页引入wxTimer.js文件(这里我将文件放在/utils) let timer = require('../../utils/wxTimer.js'); 然后就可以使用啦 ...

  5. 从谷歌Pixel3不堆硬件看智能手机下一个十年将被AI制霸

    别看现在的智能手机行业热闹异常--厂商混战.新品频出.噱头涌现,但能引领手机行业发展趋势的依旧是苹果和谷歌.如果说苹果的iPhone树立了一个个智能手机行业进化的标杆,那么谷歌其实就是在为安卓手机的发 ...

  6. jquery - 导航轮播图

    1,slider.js /** * slider插件可悬停控制 */ ; $(function ($, window, document, undefined) {   Slider = functi ...

  7. js实现ctrl+v粘贴上传图片(兼容chrome,firefox,ie11)

    背景 我们或多或少都使用过各式各样的富文本编辑器,其中有一个很方便功能,复制一张图片然后粘贴进文本框,这张图片就被上传了,那么这个方便的功能是如何实现的呢? 原理分析 提取操作:复制=>粘贴=& ...

  8. RecyclerView使用介绍

    来源 http://jinyudong.com/2014/11/13/Introduce-RecyclerView-%E4%B8%80/ 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在 ...

  9. Vue 项目de一些准备工作

    1.安装node,同时也会自动安装npm,npm是node的一种包安装工具. 2.准备一个git,可以用来管理代码. 3.打开vue官网,可以使用vue-cli脚手架工作. 这里介绍一个element ...

  10. mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)

    在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...