2019独角兽企业重金招聘Python工程师标准>>>

工具准备

安装 wkhtmltopdf

在 https://wkhtmltopdf.org/downloads.html下载稳定版的 wkhtmltopdf 进行安装,安装完成之后把该程序的执行路径加入到系统环境 $PATH 变量中

第三方安装

pip install requests

pip install beautifulsoup4

pip install pdfkit

pip install wkhtmltopdf

实现分析

获取html

首先分析界面URL

第一页:http://www.runoob.com/python/python-exercise-example1.html 第二页:http://www.runoob.com/python/python-exercise-example2.html 第三页:http://www.runoob.com/python/python-exercise-example3.html

...

第一百页:http://www.runoob.com/python/python-exercise-example100.html 由此可以得出URL的规律

url = 'http://www.runoob.com/python/python-exercise-example' + str(i) + '.html' 其中i为1到一百的整数

分析页面的html获取爬取的内容

  • 我们要获取到class =article-body,节点下的所有元素
  • 爬取的python示例中编码里面都含有样式,为了按原来的格式展示这里还需要使用一个html模板
代码实现
def get_learn_py_content():"""解析URL,获取需要的html内容:return: htmls"""htmls = []# 渲染的html模板html_template = """<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><link rel="stylesheet" href="style.css" type="text/css" media="all"></head><body>{content}</body></html>"""for i in range(1,101):base_url = 'http://www.runoob.com/python/python-exercise-example' + str(i) + '.html'response = requests.get(base_url)soup = BeautifulSoup(response.content, 'html.parser')# 获取文档内容content = soup.find(class_='article-body')# 去除图片while soup.img:soup.img.decompose()html = html_template.format(content=content)html = html.encode("UTF-8")html_name = str(i)+".html"with open(html_name, 'wb') as f:f.write(html)htmls.append(html_name)return htmls

将HTML转换成PDF

将Html转换成PDF这里使用的是第三方的包pdfkit,直接将生成的HTML直接传入进来,在传入一个即将要用的PDF的文件名,就完成了

def save_pdf(htmls,name):"""把所有html文件转换成pdf文件"""# views视图中可以加上options进行页面布局调试 options = {'page-size': 'Letter','encoding': "UTF-8",'custom-header': [('Accept-Encoding', 'gzip')]}pdfkit.from_file(htmls, name, options=options)

转载于:https://my.oschina.net/hellotest/blog/2046470

使用python爬取教程生成PDF相关推荐

  1. python爬虫爬取pdf_Python 爬虫:爬取教程生成 PDF

    作为一名程序员,经常要搜一些教程,有的教程是在线的,不提供离线版本,这就有些局限了.那么同样作为一名程序员,遇到问题就应该解决它,今天就来将在线教程保存为PDF以供查阅. 1.网站介绍 之前再搜资料的 ...

  2. python 爬取菜单生成菜谱,做饭买菜不用愁

    前言 前几天小编在家当主厨,从买菜到端上桌的全部流程都有小编操办,想着就弄一些简单一些的菜,就没有多想,可当小编去到超市站在一堆菜的面前却不知所措了,看着花花绿绿,五颜六色的菜不知道买什么,做什么菜. ...

  3. python爬取数据生成词云_Python 爬取生成中文词云以爬取知乎用户属性为例

    代码如下: # -*- coding:utf-8 -*- import requests import pandas as pd import time import matplotlib.pyplo ...

  4. python爬取歌词生成词云图_爬取毛不易歌词作词云展示

    爬取毛不易歌词作词云展示 今天我们做一个数据可视化的项目,爬取毛不易的歌词做词云展示. 1.爬取数据 我们主要使用 Python 爬虫获取 HTML,用 XPath 对歌曲的 ID.名称进行解析,然后 ...

  5. 爬虫html转换成pdf,爬取html生成pdf

    首先看了这篇文章前端使用puppeteer 爬虫生成<React.js 小书>PDF并合并,发现最后的pdf没有书签,很难受,所以主要在此基础上加了加书签的功能. 爬去的示例网站为Reac ...

  6. python浪漫文艺_文艺一把!Python爬取读者制作PDF!

    2.[文件] getpdf.py ~ 3KB 下载(58) #!/usr/bin/env python #coding=utf-8 """ Author: Anemone ...

  7. 利用python可以做什么菜_python 爬取菜单生成菜谱,做饭买菜不用愁

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:木下瞳 转载:python 爬取菜单生成菜谱,做饭买菜不用愁​mp. ...

  8. python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!

    学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作PDF这个 ...

  9. 使用Python爬取CSDN历史博客文章列表,并生成目录

    使用Python爬取CSDN历史博客文章列表,并生成目录 这篇博客将介绍如何使用Python爬取CSDN历史博客文章列表,并生成目录. 2020年 2020年04月 cv2.threshold() 阈 ...

最新文章

  1. 编码区和非编码区的关系
  2. 区别用户使用的终端设备代码 转 https://segmentfault.com/a/1190000012957023
  3. [洛谷P4705]玩游戏
  4. from html参数传到另外php文件中_在 PHP 中格式化并高亮 SQL 语句
  5. C++ STL快速入门
  6. 用Location对象和history对象修改页面url
  7. Qt 图形特效(Graphics Effect)介绍
  8. python1011无标题_讲解:Python:COMP1011 Programming For The WebPython
  9. SQL 安装在DC上的问题
  10. linuxftp文件服务器,linux ftp文件服务器
  11. DBA警世录:备份重于一切
  12. Java教程:Java定义字符串(2种方式)
  13. 定义一个Point类,派生出Circle类,计算各派生类对象的面积Area()
  14. Visual Studio 2012 Ultimate旗舰版序列号
  15. Angular 自定义loading组件
  16. Hibernate框架概述SSH框架工作原理以及流程
  17. LVGL (9) Event 机制实现
  18. php培训班学多久,学php最快要多久? 学习路线?要不要报培训班?
  19. Excel2003常用快捷键
  20. LCD vs LED vs OLED

热门文章

  1. Gentoo 下的一些命令
  2. unity3d 调用Start 注意
  3. ef unitofwork 主从表更新
  4. vim配置文件收集(作为c/c++和脚本开发的环境)
  5. 轻轻的我走了,正如我轻轻的来…——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(下)...
  6. 理解离散傅立叶变换(一)
  7. LVM逻辑卷管理测试——创建逻辑卷
  8. 多线程的使用——模拟线程池的实现(2015-12-02 00:14:59)
  9. 平衡二叉树及其应用场景
  10. RAID类型及软RAID的组建