如何用 p 爬取制作电子书网站制作属于前台工程师的一项任务,前台工程师任务包括:网站设计、网站用户体验、网站java效果、网站制作等工作。网站制作是策划师、网络程序员、网页设计等岗位,应用各种网络程序开发技术和网页设计技术,为企事业单位、公司或个人在全球互联网上建设站点,并包含域名注册和主机托管等服务的总称。
有人爬取数据分析黄金周旅游景点,有人爬取数据分析相亲,有人大数据分析双十一,连小学生写论文都用上了大数据。
我们每个人每天都在往网上通过微信、微博、淘宝等上传我们的个人信息,现在就连我们的钱都是放在网上,以后到强人工智能,我们连决策都要依靠网络。网上的数据就是资源和宝藏,我们需要一把铲子来挖掘它。
最近,ai 的兴起让 p 火了一把。实际上 p 拥有庞大的第三方支持,生态系统非常完整,可以适用各种场景和行业。
这次,我们准备通过 p 学习爬虫的开发,既简单有趣,而且是数据采集重要一环。同时脱离应用谈技术就是耍流氓,通过制作电子书学习数据的收集与整理,即能学到东西又有实用价值。
我们将通过爬取网页信息这个很小的应用场景来体会数据预处理的思想,并从中学习了解数据处理中抓取、处理、分组、存储等过程的实现。
我这次分享主要分为以下几个部分:
p 语法:通过分享掌握简单的 p 开发语法和思路,侧重于后面爬虫开发的需要用的内容;
s 爬虫开发:通过分享了解基本的 s 开发,并实现从网络爬取数据,使用 s 制作电子书;
最后,我希望通过分享,让更多人能够入门并喜欢上 p 开发,掌握 s 爬虫开发的思路和方法。
一、p 开发
11 w 下环境安装
熟悉 w 的安装 p 不难,首先下载:。
有两个版本,根据需要选择自己的版本,现在越来越多的库开始支持 3,所以建议下载 3,这里我们以 2 为例。
双击下载的安装文件,一路 n 即可,但是要注意勾选 ____ 和 a p
是 p 生态体系里面的包管理工具,很多第三方库可以通过它方便的管理。
安装 f 之后,打开命令行窗口,输入 p:
如果出现这个界面说明安装成功了。
需要把的目录添加到中,一般是 c27。
12 p 之 hw
目前我所接触过的所有编程语言都只要掌握三个内容就可以了:就是输入、处理、输出。我们已经安装好了 p,可以来一个最俗套的程序。
首先我们打开的控制台,然后输入回车。
根据我上面的说法,这个程序的输入就是 h w 字符串,处理使系统内部的输出处理,输出结果就是 h w。
我们说这个不是单纯的秀一下,以前没有用户界面的时候可以作为人机交互用途,现在多数是用于调试,可以在程序运行的时候快速的输出程序结果或者过程结果。
13 做菜与编程
现在有个很有意思的说法:生数据(原始数据)就是没有处理过的数据,熟数据(c d)是指原始数据经过加工处理后的数据,处理包括解压缩、组织,或者是分析和提出,以备将来使用。
这就像做菜生菜是输入,菜谱是程序,洗、切、烹饪等处理是程序执行过程,最后输出的熟菜。但不管生菜、熟菜都是菜,或者都是物质。
准备食材
在程序世界里的物质组成就是数据,就像有萝卜白菜等不同的品种一样,数据也有不同的类型。我目前所接触到的数据类型主要有以下几种:
物理类:数据在物理内存中的表达存储方式;
位
字
字节
数据类:数据类中的具体类型代表了不同精度和内存中不同的存储结构;
整数
浮点数
长整型
双精度
字符类:就是文本字符相关的数据类型;
字符
字符串
逻辑类:就是逻辑真与逻辑假;
布尔值
复合类:由各基本的数据类型按照一定的结构组合而成的数据;
结构体
类
集合
字典
列表
序列
h 表
这里我强调几点:
首先,这个分类不是某种语言特有,目前大多数编程语言都差不多,你理解这个思想就把自己的编程能力扩展了。
其次,它不需要专门记忆,编程是程序性的知识,运用的知识,是一种技能,你要做什么菜,你来这个分类查查需要什么原材料,再去具体研究,慢慢就会了,不做你记住了也没用。
用多深,研究多深,不用就别研究浪费时间。比如说,我们一般性应用不会去考虑数据的内存模型,但是涉及到精度、性能或者边界值时我们就需要小心,研究得深一些。
器皿
食材已准备好了,可以下锅,可锅在哪里,你不能放在手里加工。程序里我们用变量、常量来盛各种数据,还有个作用域的问题,严格的厨房红案和白案是分开的,有时候砧板是不能互用的。
空值:四大皆空,什么也不是,不是 0,不是长度为 0 的字符串,不是 ,什么都不是;
变量:学过数学的人都应该有这个概念,反正差不多;
常量:固定不变的量,比如说 。
烹饪手法
刚查了下,我大天朝常用的烹饪手法多达 20 多种,我归纳了一下,编程大概就那么几种:
数值计算加减乘除、位移等;
逻辑计算逻辑真假判断;
过程计算循环、嵌套、递归等;
数据处理字符串、对象的操作。
菜谱与炒菜
菜都准备好了,下锅怎么炒,全靠菜谱,它就是程序,而我们按照菜谱炒菜这个过程就是程序的执行。
p 或任何一种编程语言都是博大精深,同时又是一种技能,不可能在使用之前完全掌握,也没必要。
我们需要知道的是我们想吃什么(程序要输出什么),然后再去菜市场买时才找菜谱(搜索引擎查资料),最后按照我们的需求加工(编程)。
14 p 简单实践
我们运行了文件,然后导入了包 ;包定义了一个方法和一个类,我们在文件里面调用了外部的方法和类。
二、使用 s 抓取电子书
21 写在爬取数据之前
虽然我们这里的数据都是从公开的网络获取,但也不能确定其版权问题,因此获取的数据仅用于编程练习,严禁分享或用于其他用途。
好了,现在我们找一个在线看书的,找一本书把它下载到本地。首先,我们准备下载工具,就是 p 的爬虫框架 s。
22 s 安装
安装完 p 后可以用以下的命令按照 s,有些版本的 p 没有带需要手动安装。
是 p 的包管理器,大量的第三方包或者说功能可以通过这个工具来管理,所谓包就是模块化的功能集合,基本的技术参考实践里面的包。
23 新建 s 爬虫项目
s 是 p 程序,同时也是一套框架,提供了一系列工具来简化开发,因此我们按照 s 的模式来开发,先新建一个 s 项目。
s 项目包含一些基础框架代码,我们在此基础上开发。
24 新建 s 爬虫
这时,s 还不知道我们要爬取什么数据,所以我们要用 s 工具新建一个爬虫,命令如
下面实操,我们在起点中文网找一篇免费小说的完本,这里选择是《修真小主播》。
我们就在前面建立的 s 项目下新建一个爬虫,命令如下:
执行成功之后,在项目的目录下就多了一个的文件。
25 爬虫思路
怎么抓取数据,首先我们要看从哪里取,打开《修真小主播》的页面,如下:
有个目录页签,点击这个页签可以看见目录,使用浏览器的元素查看工具,我们可以定位到目录和每一章节的相关信息。
26 获取章节地址
现在我们打开文件,就是我们刚刚创建的爬虫
_ 就是目录地址,爬虫会自动爬这个地址,然后结果就在下面的中处理。现在我们就来编写代码处理目录数据,首先爬取小说的主页,获取目录列表
获取网页中的 dom 数据有两种方式,一种是使用 css 选择子,另外一种是使用 xml 的 p 查询。
这里我们用 p,相关知识请自行学习,看以上代码,首先我们通过 id 获取目录框,获取类获取目录列表
接着,遍历子节点,并查询标签内子节点的属性,最后打印出来
这样,可以说爬取章节路径的小爬虫就写好了,使用如下命令运行爬虫查看结果
爬取章节路径的小爬虫就写好了,但我们的目的不仅于此,我们接下来使用这些地址来抓取内容:
27 章节页面分析
我们接下来分析一下章节页面,从章节页面我们要获取标题和内容。
如果说章节信息爬取使用的方法,那么我们可以给每一个章节内容的爬取写一个方法,比如:_,先看看章节页面的具体情况
可以看到,章节的整个内容在类名为 -- 的标签内,标题是其中类名为_n的 3 标签,具体内容是类名为- _c的标签。
r 不同于使用 ,需要通过相对路径构造出绝对路径, 可以直接使用相对路径,因此就不需要调用方法了。
注意, 直接返回一个 r 实例,可以直接通过进行返回。
数据获取了之后是存储,由于我们要的是页面,因此,我们就按标题存储即可。
28 数据整理
首先,我们爬取下来的章节页面排序不是很好,如果人工去排需要太多的时间精力;另外,章节内容包含许多额外的东西,阅读体验不好,我们需要优化内容的排版和可读性。
我们先给章节排个序,因为目录中的章节列表是按顺序排列的,所以只需要给下载页面名称添加一个顺序号就行了。
不知道大家注意到没有,前面的分析中目录已经提供了一个_可以作为排序号,我们在目录分析页面获取这个序号,然后通过的传入_。
在_中通过的获取传入的参数,然后文件名中加入这个顺序好完成了排序。另外,s 找那个通过 h1 标签来生成目录,需要目录的话,我们需要给内容添加一个 1 标签。
还有可读性差的问题,也许我们下载的网页可能会包含一些乱七八糟的东西,我们有很多办法,也可以使用等第三方库,这里就不深入了。
三、使用 s 制作电子书
电子书的制作,完全就是工具的应用,非常简单,这里把流程过一下,大家根据兴趣自行深入。
31 s 简介
s 是一个多平台的 p 电子书编辑器。官方:-,下载页面在 s-es,根据自己的需求下载,安装很简单就不啰嗦了。
32 p 电子书简介
p(e p 的缩写,意为:电子出版),是一个自由的开放标准,属于一种可以 自动重新编排 的内容;也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示。
p 档案内部使用了 xhtml 或 dtb (一种由 daisy c 提出的 xml 标准)来展现文字、并以压缩格式来包裹档案内容。ep 格式中包含了数位版权管理(drm)相关功能可供选用。
33 加载文件
要制作 p 电子书,我们首先通过 s 把我们的抓取的文件加载到程序中,在添加文件对话框中我们全选所有文件。
内容都是 html 文件,所以编辑、排版什么的学习下 html。
34 制作目录
文件中存在 html 的标签时,点击生成目录按钮就可以自动生成目录,我们在前面数据抓取时已经自动添加了 1 标签。
35 制作封面
封面本质上也是 html,可以编辑,也可以从页面爬取,就留给大家自己实现吧。
36 编辑元数据
编辑书名、作者等信息。
36 输出 p
编辑完成后保存,取个名字。
输出可以使用电子书阅读软件打开查看,我用的是 c,还可以方便的转换为相应的格式装到 k 中阅读。