博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用python爬取教程生成PDF
阅读量:6866 次
发布时间:2019-06-26

本文共 1594 字,大约阅读时间需要 5 分钟。

hot3.png

工具准备

安装 wkhtmltopdf

在 wkhtmltopdf 进行安装,安装完成之后把该程序的执行路径加入到系统环境 $PATH 变量中

第三方安装

pip install requests

pip install beautifulsoup4

pip install pdfkit

pip install wkhtmltopdf

实现分析

获取html

首先分析界面URL

第一页: 第二页: 第三页:

...

第一百页: 由此可以得出URL的规律

url = '' + str(i) + '.html' 其中i为1到一百的整数

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

image

  • 我们要获取到class =article-body,节点下的所有元素
  • 爬取的python示例中编码里面都含有样式,为了按原来的格式展示这里还需要使用一个html模板
代码实现
def get_learn_py_content():    """    解析URL,获取需要的html内容    :return: htmls    """    htmls = []    # 渲染的html模板    html_template = """                    
{content} """ 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

你可能感兴趣的文章
doodoo.js快速入门教程
查看>>
XXL-EXCEL v1.1.1 发布,Java对象和Excel转换工具
查看>>
elasticsearch 自动删除索引脚本
查看>>
NLP入门(五)用深度学习实现命名实体识别(NER)
查看>>
js 排序算法之快速排序
查看>>
边缘计算ENS:拓展云的边界
查看>>
从0开发豆果美食小程序——搜索组件
查看>>
cordova 远程h5页面调用本地js
查看>>
巨杉数据库多活架构实践
查看>>
使用机器学习预测电子竞技游戏《守望先锋》的胜负
查看>>
即将到来的java11的新特性
查看>>
React基础再回顾
查看>>
Windows下安装 msysGit 以及初始化 Git server环境
查看>>
阿里云ACE 你知道多少?
查看>>
C#简单工厂模式——初遇GoF设计模式
查看>>
ibatis-返回结果通过resultMap封装
查看>>
锁的阻塞,死锁,锁升级
查看>>
忘记了root密码怎么办
查看>>
Tomcat 警告:consider increasing the maximum size of the cache
查看>>
Linux 用户,组,权限小练习
查看>>