python如何导出微信公众号文章方法详解
作者:coldplay.xixi 发布时间:2022-10-01 00:31:27
标签:python,导出,微信公众号文章
1.安装wkhtmltopdf
下载地址:https://wkhtmltopdf.org/downloads.html
我测试用的是windows的,下载安装后结果如下
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)
来源:https://www.php.cn/python-tutorials-459324.html


猜你喜欢
- mybatis通过将sql配置xml文件中,通过解析xml动态标签来实现动态sql如下样例 xml文件<?xml version =
- 装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对
- 鉴于上一篇中最后三个问题:1、上述程序是否能进行优化(比如功能相同的)2、创建三个3个实例,用了3个语句,能否建一个函数,只输入一个数n,就
- function BindSelect(id,dataList,fieldtext,fieldValue) { //绑定某一个数据源,fie
- 下面和大家分享一下具体的实现过程。HTML标签结构:<ul class="animation_menu">&
- 在排除网络和环境配置问题后,如果发现本地调试比较快,而部署到服务器就会出现卡顿现象,可以检查下在上传服务器时,是否将连接mysql 的IP改
- commit 粒度commit message 在工程开发中有很重要的作用。一个好的 message 不仅仅能够降低 reviewer 的心
- 以下均在本人虚拟机上进行1.安装pip3sudo apt install python3-pip2.安装虚拟环境sudo apt insta
- golang时间格式化科普 CST 含义CST: 中部标准时间 (Central Standard Time) 同时表示下面4个时区CST
- python中有两种方法可以调用父类的方法:super(Child, self).method(args) Parent.meth
- inspectdb使用步骤1.配置项目setting文件2.配置项目__init__.py 使用pymysql连接数据库 import py
- 引言:以前写的一个批量xls转csv的python简单脚本,用的是python2.7#coding=utf-8import osimport
- 爆库语句,修改红色部分的数字挨个猜出库 /**/and/**/(select/**/top/**/1/**/isnull(cast([nam
- 前言为什么要引用单元测试类传统方法的缺点分析不方便,我们需要在main函数中去调用,这样就需要去修改main函数,如果现在项目正在运行,就可
- 下午有同学Python学习群里说,使用pyinstaller打包源码时,因为代码中使用了图像、音频、视频等资源文件,无法将程序打包成单一的可
- original article by sp(’Sergio Pereira’) Sergio Pereiralast update: Ma
- 报错如下:TabError: inconsistent use of tabs and spaces in indentation我推荐一种
- pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于其在内部实现方式上,使用了高速计算的
- 今天看关于Git的博客,发现总结关于Git仓库的文档,写的思路很清晰。可以和前一篇文章,对照的看,可以更加清晰理解。git-referenc
- 使用本Activation code需要jetbrains-agent支持!插件Activation code:06KU174Y5C-eyJ