python基础爬虫的框架和运行流程

网络爬虫是什么?

网络爬虫就是:请求网站并提取数据的自动化程序

网络爬虫能做什么?

网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。

网络爬虫还被用于爬取各个网站的数据,进行分析、预测
近几年来,大量的企业和个人开始使用网络爬虫采集互联网的公开数据,进行数据分析,进一步达到商业目的。

利用网络爬虫能从网上爬取什么数据?

可以好不吹嘘的说,平时从浏览器浏览的所有数据都能被爬取下来。

网络爬虫是否合法?

上面说到了爬虫可以爬取任何数据,那么,爬取数据这种行为是否合法?
目前关于爬取数据的法律还在建立和完善中,如果爬取的数据属于个人使用或者科研范畴,基本不存在什么问题;一旦要用于商业用途就得注意了,有可能会违法。互联网界对于网络爬虫也建立了一定的道德规范(Robots协议)来约束。
这里具体看下Robots协议
Robots协议规定各个搜索引擎哪些页面可以抓取,哪些页面不能抓取,Robots协议虽然没有被写入法律,但是每一个爬虫都应该遵守这项协议。
下面是淘宝网的robots协议:

从图中我们就可以发现淘宝网对百度的爬虫引擎做出了规定,然而百度也会遵守这些规定,不信你可以试试从百度是找不到淘宝里的商品信息的。

python爬虫的基本流程

Python爬虫的基本流程非常简单,主要可以分为三部分:(1)获取网页;(2)解析网页(提取数据);(3)存储数据。

简单的介绍下这三部分:

  • 获取网页就是给一个网址发送请求,该网址会返回整个网页的数据。类似于在浏览器中输入网址并按回车键,然后可以看到网站的整个页面。
  • 解析网页就是从整个网页的数据中提取想要的数据。
  • 存储数据顾名思义就是把数据存储下来,我们可以存储在文本中,也可以存储到数据库中。

基础爬虫的框架以及详细的运行流程

基础爬虫框架主要包括五大模块,分别是爬虫调度器、URL管理器、HTML下载器、HTML解析器、数据存储器。这五大模块之间的关系如下图所示:

下来我们来分析这五大模块之间的功能:

  • 爬虫调度器主要负责统筹其他四个模块的协调工作。
  • URL管理器负责管理URL链接,维护已经爬取的URL集合和未爬取的URL集合, 提供获取新URL链接的接口。
  • HTML下载器用于从URL管理器中获取未爬取的URL链接并下载HTML网页。
  • HTML解析器用于从HTML下载器中获取已经下载的HTML网页,并从中解析出新 的URL链接交给URL管理器,解析出有效数据交给数据存储器。
  • 数据存储器用于将HTML解析器解析出来的数据通过文件或者数据库的形式存储起来。

详细的运行流程如下图所示:

原文地址:https://www.cnblogs.com/guran0822/p/12217629.html

时间: 2024-10-29 19:09:12

python基础爬虫的框架和运行流程的相关文章

基础的爬虫框架及运行流程

爬虫框架的基础和运行流程 基本的框架流程 基础爬虫框架主要包括五大模块.分别为爬虫调度器.URL管理器.HTML下载器.HTML解析器.数据存储器.功能分析如下: 爬虫调度器主要负责统筹其他四个模块的协调工作. URL管理器负责URL链接的管理,维护已经爬取的URL集合和未爬取的URL集合,提供获取新URL链接的接口. HTML下载器用于从URL管理器中获取未爬取的URL链接并下载HTML网页. HTML解析器用于从HTML下载器中获取已经下载的HTML页面,并从中解析出新的URL链接交给URL

Python基础爬虫

搭建环境: win10,Python3.6,pycharm,未设虚拟环境 之前写的爬虫并没有架构的思想,且不具备面向对象的特征,现在写一个基础爬虫架构,爬取百度百科,首先介绍一下基础爬虫框架的五大模块功能,包括爬虫调度器,URL管理器,HTML下载器,HTML解析器,数据存储器,功能分析如下: >>爬虫调度器主要负责统筹其他四个模块的协调工作 >>URL管理器负责管理URL链接,维护已经爬取的URL集合和未爬取的URL集合,提供获取新URL链接的接口 >>HTML下载器

『Python基础』第6节:流程控制之while循环

在生活中经常遇到循环的事情, 比如循环列表播放歌曲等. 在Python中, 也有循环, 就是其流程控制语句while. 1. 基本循环 while 条件: 循环体 # 如果条件为真, 那么就执行循环体 # 如果条件为假, 那么就不执行循环体. 举个例子: while True: print('你不要担心') print('青春') print('有一天') 上面的代码有一个问题就是: 没有停止的时候. 只要电脑不死机, 就会一直循环下去. 那么具体的它是怎么执行的呢? 看下面这张图. 那么应该如

python基础1 介绍、数据类型、流程控制

一.Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOBE排行榜,Python赶超PHP占据第4,成为除c\c++\java之外的全球第4大最流行的编程语言! Python是什么样的语言? 按照编译型.解释型列举出最常用的几种语言的分类 编译型.解释型各自优缺点: 编译型 优点:编译器一般会有预编译的过程对代码进行优化.因

python网络爬虫——scrapy框架持久化存储

1.基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存储:将爬取到的数据写入不同格式的文件中进行存储 scrapy crawl 爬虫名称 -o xxx.json scrapy crawl 爬虫名称 -o xxx.xml scrapy crawl 爬虫名称 -o xxx.csv 2.基于管道的持久化存储 scrapy框架中已经为我们专门集成好了高效.便捷的持

Python基础(二)变量、流程控制

一,变量 声明变量:name="Henry"   ##变量名为:name ,变量name的值为"Henry" 变量的作用:昵称,其代指内存里某个地址中保存的内容. 变量的定义规则: 变量名只能是字母.数字或下划线的任意组合. 变量名的第一个字符不能是数字. 特殊关键字不能声明为变量名(例如:'and','list','not','for','while'.........) 为了更清楚的搞清变量在内存中的位置,下面举个例子进行说明: 1 >>> x

零python基础--爬虫实践总结

网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. 爬虫主要应对的问题:1.http请求 2.解析html源码 3.应对反爬机制. 觉得爬虫挺有意思的,恰好看到知乎有人分享的一个爬虫小教程:https://zhuanlan.zhihu.com/p/20410446 立马学起! 主要步骤: 1.按照教程下载python.配置环境变量,学习使用pip命令.安装开发ide:pycharm 2.学习使用python发送请求获取页面 3.使用chrome开发者工具观察页面结构特征,使用b

python 基础-爬虫-数据处理,全部方法

生成时间戳 1. time.time() 输出 1515137389.69163 ===================== 生成格式化的时间字符串 1. time.ctime() 输出 Fri Jan 5 15:34:00 2018 ============================= 2. time.strftime("%Y-%m-%d %H:%M:%S") 输出 2018-01-05 15:34:27 ======================== 生成结构化时间 1.

Python网络爬虫_Scrapy框架_2.logging模块的使用

logging模块提供日志服务 在scrapy框架中已经对其进行一些操作所以使用更为简单 在Scrapy框架中使用: 1.在setting.py文件中设置LOG_LEVEL(设置日志等级,只有高于等于本等级的日志会显示) LOG_FILE(设置日志保存位置,设定后不会在终端显示日志) 2.实例化logger(getLogger方法可以显示__name__也就是文件名) logger.warning("消息"): 以waring等级输出日志消息 在普通文件中使用: 该代码只显示消息 HD