IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 阮一峰老师博客爬取与博客文章存储持久化方式的思考 -> 正文阅读

[Python知识库]阮一峰老师博客爬取与博客文章存储持久化方式的思考

前言

以前阅读过阮一峰老师的博客,讲解通俗易懂,很是良心,想着把老师的博客都爬取下来,方便后面阅读。由于是第一次爬取并存储博客数据,如何永久储存博客是我需要思考的问题,而下来便是我自己总结的思路了。

博客文章存储持久化思考

文本形式存储

文本形式存储是指将数据储存在文本文件中,这种方式确实能直接、快捷储存文字数据,但是文本形式存储无法保存含有图片的博文,同时也无法保留文字格式存储,这样在阅读体验上会很差。

html形式存储

html形式存储是指将数据保存在html格式文件中,它把爬取到的网页源码保存到html文件中,在保存时单独下载博客中的图片到本地,并替换网页源码中图片的路径为本地图片的路径,这样打开html时能阅读到文字与图片,相对文本形式存储在体验上会好很多,但是除非一并下载css、js样式文件,不然本地打开的博文还是会乱序。

pdf形式存储

pdf形式存储是指将数据保存成pdf文件格式,当然,如果单纯得爬取并添加数据效果不会很好,所以需要依赖python第三方库pdfkit,它可以将字符串数据转换成pdf,而我们爬取到的网页源码字符串数据在转换时是能以网页原样式转换的,这样在文字顺序和图片上都能很好得还原博文本来的样貌。

博客爬取思路

网站:阮一峰网络日志
这个网站设计是不会展示全部的博文日志的,所以只能通过上下篇这种方式遍历到全部博文
在这里插入图片描述

爬取思路一

我们可以请求最新一期的博文,在保留这一期的博文数据时,拿到上一期的博文链接,在保存这一期的数据后请求上一期。以此类推不断爬取

爬取思路二

通过请求最新一期的博文拿到上一次的博文链接并保存链接,然后请求上期链接拿到上上期的网址,以此类推,第一次遍历只为了存储全部博文链接。待拿到全部链接后,循环遍历再次请求并保存数据即可

个人选择

我采用的是第二种爬取思路,因为第一遍得到全部链接后,我们可以通过多线程方式快速爬取到博文数据。

pdf存储

通过pip install pdfkit安装第三方库
还需wkhtmltopdf工具,下载路径,安装后要将wkhtmltopdf的bin目录添加到系统环境变量中

程序代码调用pdfkits时,pdfkit会调用wkhtmltopdf,通过wkhtmltopdf来调用windows中的wkhtmltopdf.exe来转化html为pdf。

pdfkit使用

options = {
    'page-size': 'Letter',
    'encoding': "UTF-8",
    'custom-header': [('Accept-Encoding', 'gzip')]
}

filename = './article/{}.pdf'.format(article_title.group(1))

path_wk = r'C:\wkhtmltopdf\bin\wkhtmltopdf.exe'  # 安装位置
config = pdfkit.configuration(wkhtmltopdf=path_wk)
pdfkit.from_string(resp.text, filename, options=options, configuration=config)

结尾

分享到此结束,本次分享仅作学习用途,有什么问题欢迎讨论。
源码下载

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:18:43  更:2021-08-11 12:23:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:53:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码