python如何导出微信公众号文章方法详解


Posted in Python onAugust 31, 2020

python如何导出微信公众号文章方法详解

1.安装wkhtmltopdf

下载地址:https://wkhtmltopdf.org/downloads.html

我测试用的是windows的,下载安装后结果如下

python如何导出微信公众号文章方法详解

2 编写python 代码导出微信公众号文章

不能直接使用wkhtmltopdf 导出微信公众号文章,导出的文章会缺失图片,所以需要使用 wechatsogou 将微信公众号文章页面抓取,之后将html文本转化为pdf

pip install wechatsogou --upgrade

pip install pdfkit

踩坑!!!,看了很多人的代码,都是一个模板,大家都是抄来抄去,结果还是运行不了,可能是因为依赖包更新的原因,也可能是因为我本地没有配置wkhtmltopdf 的环境变量

import os
import pdfkit
import datetime
import wechatsogou
# 初始化API
ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3)
def url2pdf(url, title, targetPath):
 '''
 使用pdfkit生成pdf文件
 :param url: 文章url
 :param title: 文章标题
 :param targetPath: 存储pdf文件的路径
 '''
 try:
 content_info = ws_api.get_article_content(url)
 except:
 return False
 # 处理后的html
 html = f'''
{title}
 {content_info['content_html']}
 
 '''
 try:
 path_wk="E:/softwareAPP/wkhtmltopdf/bin/wkhtmltopdf.exe";
 config=pdfkit.configuration(wkhtmltopdf=path_wk)
 pdfkit.from_string(input=html, output_path=targetPath,configuration=config)
 except:
 # 部分文章标题含特殊字符,不能作为文件名
 filename = datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.pdf'
 pdfkit.from_string(html, targetPath + os.path.sep + filename)
 
if __name__ == '__main__':
 # 此处为要爬取公众号的名称
 url2pdf("https://mp.weixin.qq.com/s/wwT5n2JwEEAkrrmOhedziw", "HBase的系统架构全视角解读","G:/test/hbase文档.pdf" )
 # gzh_name = ''
 # # 如果不存在目标文件夹就进行创建
 # if not os.path.exists(targetPath):
 # os.makedirs(targetPath)
 # # 将该公众号最近10篇文章信息以字典形式返回
 # data = ws_api.get_gzh_article_by_history(gzh_name)
 # article_list = data['article']
 # for article in article_list:
 # url = article['content_url']
 # title = article['title']
 # url2pdf(url, title, targetPath)

到此这篇关于python如何导出微信公众号文章方法详解的文章就介绍到这了,更多相关python导出微信公众号文章内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python装饰器入门学习教程(九步学习)
Jan 28 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
SVM基本概念及Python实现代码
Dec 27 Python
python制作图片缩略图
Apr 30 Python
Django框架实现的分页demo示例
May 25 Python
PyQt5 QTable插入图片并动态更新的实例
Jun 18 Python
基于h5py的使用及数据封装代码
Dec 26 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
Keras模型转成tensorflow的.pb操作
Jul 06 Python
Pyqt5将多个类组合在一个界面显示的完整示例
Sep 04 Python
Python生成并下载文件后端代码实例
Aug 31 #Python
python exit出错原因整理
Aug 31 #Python
Python如何将模块打包并发布
Aug 30 #Python
如何以Winsows Service方式运行JupyterLab
Aug 30 #Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 #Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 #Python
python开根号实例讲解
Aug 30 #Python
You might like
php中获取远程客户端的真实ip地址的方法
2011/08/03 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
深入document.write()与HTML4.01的非成对标签的详解
2013/05/08 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
如何利用Promises编写更优雅的JavaScript代码
2016/05/17 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
React中的render何时执行过程
2018/04/13 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
django model的update时auto_now不被更新的原因及解决方式
2020/04/01 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
简述数组与指针的区别
2014/01/02 面试题
2014乡镇领导班子四风对照检查材料思想汇报
2014/10/05 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
通知怎么写?
2019/04/17 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL