[Python 实战] - No.1 爬虫基本结构讲解
2017-05-05 10:44
405 查看
最近的一个项目需要用到爬虫爬取微博博文,所以特地学习了一下python 爬虫。特此记录,以方便日后再次用到,在这里我只记录爬虫相关结构介绍,图片来源自imooc python爬虫课程。
1. 爬虫基本架构:
爬虫最重要的三个部分就是URL管理器、网页下载器、和网页解析器。其作用分别为:
1. URL管理器:主要是用于储存爬虫程序对应的URL。对于最新得到的URL,维护一个容器,储存所有未被爬取过的URL;同时,维护一个容器存储所有已经爬取过的URL。为什么要存储已经爬取过得URL呢?在我们爬取的过程中,可能会存在一些网页是互相跳转的,所以可能会形成一些循环。因此,在我们添加一个新的URL时,如果这URL出现在未被爬取的、或者已经被爬取的URL容器中,我们忽略这个URL,不予添加。
2. 网页下载器:每次从URL管理器中获取一个URL,然后使用相应方法下载该网页内容。在这里我们使用urllib2下载。方法有以下几种:
1). urllib2直接下载:
2). urllib2伪装浏览器发送请求:
3). urllib2对应特殊场景(代理、HTTPS、HTTP重定向)
3). 网页解析器
网页解析可以分为使用正则表达式进行模糊匹配以及使用结构化解析。这两种方法都有对应的python库来实现,可以使用etree以及Beautiful Soup进行匹配。在这里提供Beautiful Soup4的文档地址。etree
对应的方法也可以在百度上查阅到,这里不再赘述。具体爬虫例子传送门
P.S.文章不妥之处还望指正
1. 爬虫基本架构:
爬虫最重要的三个部分就是URL管理器、网页下载器、和网页解析器。其作用分别为:
1. URL管理器:主要是用于储存爬虫程序对应的URL。对于最新得到的URL,维护一个容器,储存所有未被爬取过的URL;同时,维护一个容器存储所有已经爬取过的URL。为什么要存储已经爬取过得URL呢?在我们爬取的过程中,可能会存在一些网页是互相跳转的,所以可能会形成一些循环。因此,在我们添加一个新的URL时,如果这URL出现在未被爬取的、或者已经被爬取的URL容器中,我们忽略这个URL,不予添加。
2. 网页下载器:每次从URL管理器中获取一个URL,然后使用相应方法下载该网页内容。在这里我们使用urllib2下载。方法有以下几种:
1). urllib2直接下载:
2). urllib2伪装浏览器发送请求:
3). urllib2对应特殊场景(代理、HTTPS、HTTP重定向)
3). 网页解析器
网页解析可以分为使用正则表达式进行模糊匹配以及使用结构化解析。这两种方法都有对应的python库来实现,可以使用etree以及Beautiful Soup进行匹配。在这里提供Beautiful Soup4的文档地址。etree
对应的方法也可以在百度上查阅到,这里不再赘述。具体爬虫例子传送门
P.S.文章不妥之处还望指正
相关文章推荐
- python实现顺序结构基本爬虫,爬取福利图片
- Python入门(一):爬虫基本结构&简单实例
- python爬虫入门1--爬虫基本结构
- python爬虫实战——NBA球员基本数据
- 实战数据结构(5)_双向循环链表的基本操作
- 【网络爬虫】【python】网络爬虫(四):scrapy爬虫框架(架构、win/linux安装、文件结构)
- Python实例讲解 -- wxpython 基本的控件
- Python爬虫框架Scrapy实战之安装
- Python爬虫框架Scrapy实战教程---定向批量获取职位招聘信息
- 实战数据结构(5)_双向循环链表的基本操作
- Python爬虫框架Scrapy 学习笔记 10.2 -------【实战】 抓取天猫某网店所有宝贝详情
- Python实例讲解 -- wxpython 基本的控件 (文本)
- Python实例讲解 -- wxpython 基本的控件 (按钮)
- Python学习02- 基本语法与数据结构
- python 爬虫基本知识
- 基础篇5-python基本数据类型讲解1.1
- Python实例讲解——wxPython的基本控件实现
- 项目视频讲解_Python实战开发之Pyramid Web框架在商城项目中的应用(模版引擎、布局引擎、JSON)
- Python爬虫框架Scrapy 学习笔记 10.1 -------【实战】 抓取天猫某网店所有宝贝详情
- python 爬虫基本知识