Python爬虫中流程框架和常用模块是什么

  介绍

小编给大家分享一Python爬下虫中流程框架和常用模块是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强>一、简单爬虫架构

首先学习爬虫之前呢,要知道爬虫的一个基本架构,也就是写代码得有层次结构吧?不然挤牙膏么?

爬虫调度器→URL管理器→网页下载器()→网页解析器()→价值数据

其中最重要地方,莫过于三君子——管理,下载,解析器。

 Python爬虫中流程框架和常用模块是什么

这就是个初代版本的简单爬虫架构,一个基本的架构。

<强>二、运行流程

实际上对于一些有开发基础的人来看,这个东西已经一目了然了,具体内容我不说了。

 Python爬虫中流程框架和常用模块是什么

具体过程:(细品,你细品~)

1,调度器询问URL管理器,是否有待爬URL ? URL管理器返回是/否?

2,如果是,调度器会从URL管理器中取出一个待爬URL;

3,调度器将URL传给下载器,下载网页内容后返回给调度器;

4,调度器再将返回的网页内容发送到解析器,解析URL内容,解析完成后返回有价值的数据和新的URL;

5,一方面,调度器将数据传递给应用进行数据的收集;另一方面,会将新URL的补充进URL管理器,若有URL管理器中含有新的URL,则重复上述步骤,直到爬取完所有的URL

6,最后,调度器会调动应用的方法,将价值数据输出到需要的格式。

<强>三、URL管理器和实现方法

<强>定义:管理带抓取URL集合和已抓取URL集合,

<强>作用:防止重复抓取,防止循环抓取

<强> URL管理器功能:

 Python爬虫中流程框架和常用模块是什么

<强>支持的功能

添加新URL到待爬取集合中

判断待添加的URL是否在容器中

判断是否还有带待爬取URL

获取待爬取URL

将URL从待爬取移动到已爬取

<强>实现方式

<强>  Python爬虫中流程框架和常用模块是什么

1,适合个人的:内存(计算机或服务器内存)

2,小型企业或个人:关系数据库(永久存储或内存不够用,如MySQL)

3,大型互联网公司:缓存数据库(高性能,如支持组()的复述)

<强>四、网页下载器和urllib2模块

将互联网上URL对应的网页下载到本地的工具。

作用:网页下载器类似于浏览器,会将互联网对应的网页以HTML的形式下载到本地,存储成本地文件或内存字符串,然后进行后续的分析。

<强> Python的网页下载器种类

urllib/urllib2 (Python官方提供的基础模块)

请求(第三方插件,提供更为强大的功能)

(注意:Python 3。x以上版本把urllib2和urllib整合到一起。所以引入模块变成一个,只有进口urllib,以后你在python2中看到的urllib2在python3中用urllib。请求替换~)

举例:

# py2   import  urllib2   时间=response  urllib2.urlopen (url),   #,报错NameError: name  & # 39; urllib2& # 39;, is  not 定义,要改为   #,py3   import  urllib.request   response =, urllib.request.urlopen (url)

个人觉得Urllib库不好,用请求库更好用。

<强> urllib2抓取网页的三种方法(以后用请求)

当然,虽然urllib2用的要少一些了,但是还是要了解一下的

方法1:给定url,使用Urllib模块的urlopen方法获取网页内容

举例:

这里我用的python3。x版本的urllib库。

请求:发送一个得到请求到指定的页面,然后返回HTTP的响应。

得到urllib  import 请求   打印(& # 39;第一种方法得到请求& # 39;)   时间=url  & # 39; http://www.baidu.com& # 39;   #,直接请求   时间=response  request.urlopen (url)   #,获取状态码,如果是200表示成功   打印(response.status)   #,读取网页内容   打印(response.read () .decode (& # 39; utf - 8 # 39;)

因为读获取到的字节编码,改为解码(“utf - 8”)。

方法2:添加数据,http头

Python爬虫中流程框架和常用模块是什么