Python爬虫介绍及实战入门

Python爬虫介绍及实战入门
文章图片

一、什么是爬虫 【Python爬虫介绍及实战入门】????爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。
二、Python爬虫架构 ????Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。
????1.调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。
????2.URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现URL管理器主要用三种方式,通过内存、数据库、缓存数据库来实现。
????3.网页下载器:通过传入一个URL地址来下载网页,将网页转换成一个字符串,网页下载器有urllib2(Python官方基础模块)包括需要登录、代理、和cookie,requests(第三方包)
????4.网页解析器:将一个网页字符串进行解析,可以按照我们的要求来提取出我们有用的信息,也可以根据DOM树的解析方式来解析。网页解析器有正则表达式(直观,将网页转成字符串通过模糊匹配的方式来提取有价值的信息,当文档比较复杂的时候,该方法提取数据的时候就会非常的困难)、html.parser(Python自带的)、beautifulsoup(第三方插件,可以使用Python自带的html.parser进行解析,也可以使用lxml进行解析,相对于其他几种来说要强大一些)、lxml(第三方插件,可以解析 xml 和 HTML),html.parser 和 beautifulsoup 以及 lxml 都是以 DOM 树的方式进行解析的。
????5.应用程序:就是从网页中提取的有用数据组成的一个应用。
下图为爬虫框架工作流程:
Python爬虫介绍及实战入门
文章图片

三、实战爬取小说 ????1.爬取某小说中其中一章内容:
Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????输出结果中存在乱码。
Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????解析网页中部分内容,在网页中右键,点击检查。
Python爬虫介绍及实战入门
文章图片

????我们要输出上图中选中行,其标签为h1,预输出其内容,我们需安装解析包parsel。
Python爬虫介绍及实战入门
文章图片

????Pycharm中导入parsel包,进行解析并输出h1标签内容。
Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????此时我们所需内容仅为文本内容,不需两边h1标签。(h1为标签选择器)
Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????得到无标签文本内容,下面我们需要爬取小说内容。(content为id选择器)
?????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????输出结果为列表格式,我们需将其合并为字符串格式。
????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????第二种方法,使用for循环打印文本。
????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????如上仍为逐行打印其文本内容,我们最终是要收集其内容成为文档,所以我们进行文本内容收集,使用text进行收集。
?????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????保存文本数据,输出文本文档。
Python爬虫介绍及实战入门
文章图片

????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????2.爬取整本小说,多章节,首先将上述代码封装,以便后续调用,将其封装为函数对象:download_one_chapter,删除代码中部分print。
Python爬虫介绍及实战入门
文章图片

????调用函数download_one_chapter,输入小说网址即可下载对应文本内容。
Python爬虫介绍及实战入门
文章图片

????????????????Python爬虫介绍及实战入门
文章图片

此时为逐章下载,我们要实现自动下载整本小说全部章节,首先我们要获取所有章节的网址。
Python爬虫介绍及实战入门
文章图片

????????Python爬虫介绍及实战入门
文章图片

????????爬取整本小说并输出
Python爬虫介绍及实战入门
文章图片

????????Python爬虫介绍及实战入门
文章图片

????若将小说内容放在同一文件中,将下述代码进行修改????????:
????修改前:
Python爬虫介绍及实战入门
文章图片

????修改后:
Python爬虫介绍及实战入门
文章图片

????????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????整本小说文本内容则全部保存在同一文档中
????将代码封装,定义函数:download_one_book,导入parse,进行网址补全。
????????????Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

????我们便可直接调用函数进行整本小说下载。
Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

Python爬虫介绍及实战入门
文章图片

    推荐阅读