位置: 编程技术 - 正文

python爬虫实现教程转换成 PDF 电子书(python爬虫视频教程)

编辑:rootadmin

推荐整理分享python爬虫实现教程转换成 PDF 电子书(python爬虫视频教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python爬虫基础教学,python爬虫课设,爬虫python全套教学,python 爬虫教学,python 爬虫教学,python爬虫视频教程,python爬虫教学视频,python爬虫教学视频,内容如对您有帮助,希望把文章链接给更多的朋友!

写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 Python 教程 爬下来做成 PDF 电子书方便大家离线阅读。

开始写爬虫前,我们先来分析一下该网站1的页面结构,网页的左侧是教程的目录大纲,每个 URL 对应到右边的一篇文章,右侧上方是文章的标题,中间是文章的正文部分,正文内容是我们关心的重点,我们要爬的数据就是所有网页的正文部分,下方是用户的评论区,评论区对我们没什么用,所以可以忽略它。

工具准备

弄清楚了网站的基本结构后就可以开始准备爬虫所依赖的工具包了。requests、beautifulsoup 是爬虫两大神器,reuqests 用于网络请求,beautifusoup 用于操作 html 数据。有了这两把梭子,干起活来利索,scrapy 这样的爬虫框架我们就不用了,小程序派上它有点杀鸡用牛刀的意思。此外,既然是把 html 文件转为 pdf,那么也要有相应的库支持, wkhtmltopdf 就是一个非常好的工具,它可以用适用于多平台的 html 到 pdf 的转换,pdfkit 是 wkhtmltopdf 的Python封装包。首先安装好下面的依赖包,

接着安装 wkhtmltopdf

安装 wkhtmltopdf

Windows平台直接在 wkhtmltopdf 官网2下载稳定版的进行安装,安装完成之后把该程序的执行路径加入到系统环境 $PATH 变量中,否则 pdfkit 找不到 wkhtmltopdf 就出现错误 “No wkhtmltopdf executable found”。Ubuntu 和 CentOS 可以直接用命令行进行安装

爬虫实现

一切准备就绪后就可以上代码了,不过写代码之前还是先整理一下思绪。程序的目的是要把所有 URL 对应的 html 正文部分保存到本地,然后利用 pdfkit 把这些文件转换成一个 pdf 文件。我们把任务拆分一下,首先是把某一个 URL 对应的 html 正文保存到本地,然后找到所有的 URL 执行相同的操作。

python爬虫实现教程转换成 PDF 电子书(python爬虫视频教程)

用 Chrome 浏览器找到页面正文部分的标签,按 F 找到正文对应的 div 标签: <div >,该 div 是网页的正文内容。用 requests 把整个页面加载到本地后,就可以使用 beautifulsoup 操作 HTML 的 dom 元素 来提取正文内容了。

具体的实现代码如下:用 soup.find_all 函数找到正文标签,然后把正文部分的内容保存到 a.html 文件中。

第二步就是把页面左侧所有 URL 解析出来。采用同样的方式,找到 左侧菜单标签 <ul >

具体代码实现逻辑:因为页面上有两个uk-nav uk-nav-side的 class 属性,而真正的目录列表是第二个。所有的 url 获取了,url 转 html 的函数在第一步也写好了。

最后一步就是把 html 转换成pdf文件了。转换成 pdf 文件非常简单,因为 pdfkit 把所有的逻辑都封装好了,你只需要调用函数 pdfkit.from_file

执行 save_pdf 函数,电子书 pdf 文件就生成了,效果图:

总结

总共代码量加起来不到行,不过,且慢,其实上面给出的代码省略了一些细节,比如,如何获取文章的标题,正文内容的 img 标签使用的是相对路径,如果要想在 pdf 中正常显示图片就需要将相对路径改为绝对路径,还有保存下来的 html 临时文件都要删除,这些细节末叶都放在github上。

完整代码可以上github下载 ,代码在 Windows 平台亲测有效,欢迎 fork 下载自己改进。github 地址3,GitHub访问不了的同学可以用码云4, 《廖雪峰的 Python 教程》电子书 PDF 文件可以通过关注本公众号『一个程序员的微站』回复 “pdf” 免费下载阅读。

Python实现字符串格式化的方法小结 Python2.6+增加了str.format函数,用来代替原有的'%'操作符。它使用比'%'更加直观、灵活。下面详细介绍一下它的使用方法。下面是使用'%'的例子:"""PIis%f..."%

python安装cx_Oracle模块常见问题与解决方法 本文实例讲述了python安装cx_Oracle模块常见问题与解决方法。分享给大家供大家参考,具体如下:安装或使用cx_Oracle时,需要用到Oracel的链接库,如libclnts

python安装oracle扩展及数据库连接方法 本文实例讲述了python安装oracle扩展及数据库连接方法。分享给大家供大家参考,具体如下:下载:cx_Oracle下载地址:

标签: python爬虫视频教程

本文链接地址:https://www.jiuchutong.com/biancheng/379997.html 转载请保留说明!

上一篇:Python 模块EasyGui详细介绍(python 模块定义)

下一篇:Python实现字符串格式化的方法小结(python字符串怎么用)

  • 鸡蛋普通发票能不能抵扣增值税呢
  • 季中转一般纳税人申报步骤
  • 项目部电缆属于固定资产吗
  • 微信怎么开公司账户
  • 增值税返还需要交增值税吗
  • 小规模纳税人开专票税率是1%还是3%
  • 上月暂估计提的费用次月来发票怎么写会计分录?
  • 离职员工的工资应该多久结清
  • 货运发票和提供建筑服务的专票备注怎么写?
  • 更换金税盘后数据能恢复么
  • 发票从7月1日起开
  • 教育培训机构涉税问题
  • 更换银行印鉴需要本人吗
  • 应付职工薪酬科目的应用
  • 以前年度原材料调出怎么做会计分录
  • 职工教育经费是工资总额的多少
  • 苹果电脑里的finder是什么
  • WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
  • 股东股权折价转让会计分录
  • vue项目中使用opencv
  • vue3使用高德地图
  • 酒店开业前准备工作流程
  • 百家论坛是正规期刊吗
  • thinkphp设置伪静态
  • laravel执行seed命令
  • 弃置费用的会计处理
  • 个人转让土地使用权可以开专票吗
  • 程序员 cr
  • 利用html css javascript做一个网页
  • 融资租入固定资产
  • 预收账款的账务处理摘要
  • 工业企业生产费用最基本的分类是
  • java中的常量是什么意思
  • 国家研发费用补助
  • 资金托管账户的钱能查到吗
  • 快递费报销要明细吗
  • SQL Server 2012 开窗函数
  • 什么是电子银行服务
  • 去年的管理费用多做了今年怎样调账
  • 纳税人未抄报税怎么办
  • 常用的加速折旧方法
  • 施工企业会计成本费用论文3000字
  • 供应商退回来的钱应走哪个科目
  • 办公费用包含哪里费用
  • 企业经营规模小的原因
  • 卸载软件怎么彻底删掉
  • Winserver2012下mysql 5.7解压版(zip)配置安装教程详解
  • windows2003服务不能开启
  • iis配置asp网站
  • mac的safari浏览器无法打开
  • linux查看可执行命令
  • win7系统安装程序无法创建新的系统分区
  • Win10 Mobile RS2预览版14926更新与修复内容汇总
  • windows屏蔽网络设置的方法不包括以下哪种
  • linux命令文件移动
  • win10引导记录损坏修复方法详解
  • 博通网卡驱动win7
  • WIN10系统更新怎么关闭
  • cocos内存管理
  • JavaScript中的变量名不区分大小写
  • 很实用的话
  • 百度关键词设置
  • jquery.multiselect多选下拉框实现代码
  • cocos2dx-3.2+lua 常用函数
  • 从零开始学什么好
  • 如何自定义手机图标
  • shell脚本检测文件是否存在
  • python中将字典转换为字符串
  • javascript编程技术
  • 拟录用人员公示后还会递补吗
  • 四川国税局发票查询
  • 去哪儿网客服电话怎么转人工
  • 设备租赁增值税怎么抵扣
  • 国土国税垂管部主任是谁
  • 天津河东区医院地址电话
  • 增值税发票不够用怎么增票
  • 税务申报时显示未抄报税?
  • 房产税申报流程图
  • 济南高新区工商局政务大厅电话
  • 辽宁省耕地占用税适用税额表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设