python第三方库pdfkit非常好用,基本上应用它就可以打印出pdf文件,作为学渣收藏干货吃灰简直是完美匹配,本渣渣也写了不少爬取不少干货打印成pdf的文章,其中就有微信公众号文章,前段时间又继续折腾了公众号文章打印pdf,发现如果存在图片就挂比,歇菜了!
SO,因此有了这样一篇文章,解决微信公众号文章打印pdf图片无法显示的问题,不懂的话直接搜大佬的参考方案,百试百灵!!
下面就来复盘一下解决方案!
就以本渣渣的公众号文章链接为例:
【微信采集助手】Python Tkinter 微信公众号文章批量采集工具
爬取打印pdf效果:
解决pdfkit直接转换url成为pdf会出现图片无法显示问题,参考了博客园xuzifan提供的思路,利用wechatsogou中的get_article_content函数,将url中的代码提取出来转换为html字符串,然后将html字符串转换为pdf,完美解决。
pip install wechatsogou --upgrade
wechatsogou是一个基于搜狗微信搜索的微信公众号爬虫接口,没错,还是调用接口!!
使用Python爬取微信公众号文章并保存为PDF文件(解决图片不显示的问题)
https://www.cnblogs.com/xuzifan/p/11121878.html
不过本渣渣测试了一下代码,老是出验证码,死活没有运行下去!
这里再提供一下最近的代码参考,一个大佬老哥的源码:
可自行参考!
附完整源码参考:
#采集微信公众号文章内容转pdf文件
#by 微信:huguo00289
# -*- coding: UTF-8 -*-
import wechatsogou
import pdfkit
#pdfkit本地路径
config = pdfkit.configuration(
wkhtmltopdf=r'D:\wkhtmltox-0.12.5-1.mxe-cross-win64\wkhtmltox\bin\wkhtmltopdf.exe')
# 初始化API
ws_api = wechatsogou.WechatSogouAPI(captcha_break_time=3)
def dypdf(h1, data):
# 处理后的html
datas = f'''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{h1}</title>
</head>
<body>
<h2 style="text-align: center;font-weight: 400;">{h1}</h2>
{data}
</body>
</html>
'''
print("开始打印内容!")
pdfkit.from_string(datas, f'{h1}.pdf', configuration=config)
print("打印保存成功!")
def wx(h1,url):
# 该方法根据文章url对html进行处理,使图片显示
content_info = ws_api.get_article_content(url)
# 得到html代码(代码不完整,需要加入head、body等标签)
html_code = content_info['content_html']
dypdf(h1, html_code)
if __name__=='__main__':
url="https://mp.weixin.qq.com/s?src=11×tamp=1621327798&ver=3075&signature=jmB-1M7nuTd-tKOj-8WmSLcmLK7fWIfIeWsZvtIKw5AkYd4U0R5cOz*QSjaVDfg38UkPtUqfxL2Lut0jrWNuTAtQMiyWd*tJHqLlPnWH-ewQ46cpjjp-Pyke0ab57WdM&new=1"
h1="【微信采集助手】Python Tkinter 微信公众号文章批量采集工具"
wx(h1,url)
调用接口什么的,还是比较简单,做一个调包侠,还是非常给力的!
本文分享自 Python与SEO学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!