小编给大家分享一Python爬下虫中流程框架和常用模块是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强>一、简单爬虫架构强>
首先学习爬虫之前呢,要知道爬虫的一个基本架构,也就是写代码得有层次结构吧?不然挤牙膏么?
爬虫调度器→URL管理器→网页下载器()→网页解析器()→价值数据
其中最重要地方,莫过于三君子——管理,下载,解析器。
这就是个初代版本的简单爬虫架构,一个基本的架构。
<强>二、运行流程强>
实际上对于一些有开发基础的人来看,这个东西已经一目了然了,具体内容我不说了。
具体过程:(细品,你细品~)
1,调度器询问URL管理器,是否有待爬URL ? URL管理器返回是/否?
2,如果是,调度器会从URL管理器中取出一个待爬URL;
3,调度器将URL传给下载器,下载网页内容后返回给调度器;
4,调度器再将返回的网页内容发送到解析器,解析URL内容,解析完成后返回有价值的数据和新的URL;
5,一方面,调度器将数据传递给应用进行数据的收集;另一方面,会将新URL的补充进URL管理器,若有URL管理器中含有新的URL,则重复上述步骤,直到爬取完所有的URL
6,最后,调度器会调动应用的方法,将价值数据输出到需要的格式。
引用><强>三、URL管理器和实现方法强>
<强>定义:管理带抓取URL集合和已抓取URL集合,强>
<强>作用:防止重复抓取,防止循环抓取强>
<强> URL管理器功能:强>
<强>支持的功能强>
添加新URL到待爬取集合中
判断待添加的URL是否在容器中
判断是否还有带待爬取URL
获取待爬取URL
将URL从待爬取移动到已爬取
<强>实现方式强>
<强> 强>
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爬虫中流程框架和常用模块是什么