1.什么是爬虫Crawler:自动抓取互联网信息的程序,为我们从互联网上抓取有价值的信息。2.Python爬虫架构Python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取有价值的数据)。1、调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器和解析器之间的协调。2、URL管理器:包括要抓取的URL地址和已经抓取到的URL地址,防止重复抓取URL和循环抓取URL,URL管理器的实现方式主要有3种,通过内存,数据库,和缓存数据库完成。3、网页下载器:通过传入URL地址下载网页,并将网页转为字符串。网页下载器有urllib2(Python官方基础模块)包括login、proxy、cookie、requests(第三方包)4.网页解析器:解析一个网页字符串,根据我们的要求提取有用的信息,或者对其进行解析根据DOM树的解析方式。网页解析器有正则表达式(直观,将网页转换成字符串通过模糊匹配提取有价值的信息,当文档很复杂时,用这种方法提取数据会非常困难),html。parser(Python自带)、beautifulsoup(第三方插件,可以使用Python自带的html.,可以解析xml和HTML)、html.parser、beautifulsoup和lxml都是以DOM树的形式进行解析。5、应用:是从网页中提取有用数据组成的应用。下图展示了爬虫框架的工作流程:三、小说爬虫实战1.爬取小说的某一章节:输出有乱码。分析网页中的部分内容,在网页上右击,点击检查。我们要输出上图中选中的那一行,它的标签是h1,并且预输出它的内容,需要安装解析包parsel。Pycharm导入解析器包,解析并输出h1标签的内容。这个时候我们需要的内容只有文本内容,不需要两边的h1标签。(h1为标签选择器)得到未标注的文本内容,接下来我们需要爬取小说内容。(content是id选择器)输出结果是列表格式,我们需要合并成字符串格式。第二种方法使用for循环来打印文本。如上,文本内容还是一行一行打印出来的,我们最终会把内容收集起来变成文档,所以我们收集文本内容,用text来收集。保存文本数据并输出文本文档。2、爬取整本小说,多个章节,先将上述代码封装起来,方便后续调用,封装成一个函数对象:download_one_chapter,删除代码中的部分打印。调用函数download_one_chapter,输入小说网址,下载相应的文字内容。这是逐章下载。我们要自动下载整本小说的所有章节。首先,我们需要获取所有章节的URL。疯狂整本小说并输出。如果小说内容放在同一个文件中,修改如下代码:修改前:修改后:整个小说文本内容保存在同一个文件中封装代码,定义函数:download_one_Book_Book,importparse,和执行URL完成。我们可以直接调用函数下载整本小说。
