赞
踩
需要将微信公众号的文章导出来存档,从网上找了个微信文章搜索下载助手,倒是很方便的把所有历史消息列表导出了,但在将列表所有文章存为PDF文件时,作者要求付费,只好将列表文件导出来,然后写了段代码自己保存PDF
其中用到部分工具:
1、pdfkit工具,这个可以通过PIP安装,但之前要安装wkhtmltox,下载解压至D盘。
2、selenium,PIP安装即可。附加工作是下载与本机的chrome版本适应的chromedriver,复制到chrome目录,并把chrome目录添加到系统变量path中
3、urllib,pip安装,用以保存图片,之所以用urllib保存图片而不是通过pdfkit保存,因为pdfkit工具保存微信文章中的图片出现异常.
注意:微信图片在较老的文章中,用的URL是http而不是HTTPS,此处不再处理
- import pdfkit
- import re #python中利用正则,需要导入re模块
- import io
- import time
- import random
- from selenium import webdriver
- from urllib.request import urlretrieve
-
- path_wk = r'D:\wkhtmltox\bin\wkhtmltopdf.exe' #wkhtmltox安装位置
- config = pdfkit.configuration(wkhtmltopdf = path_wk)
- f=open(r"d:\hl\list.txt","r",encoding='utf-8') #打开url列表
- '''
- 形如:
- 文章标题||http://....
- 文章标题||http://....
- '''
- listurl=f.readlines()
- driver = webdriver.Chrome()
- driver.maximize_window()
- i=0
- for urlline in listurl:
- tt,url=urlline.split("||") #分析出标题与url
- try:
- pdfkit.from_url(url, r'd:\hl\pdfs\{}.{}.pdf'.format(i,tt), configuration=config) #保存网页的PDF
- driver.get(url)
- doc = driver.page_source #获得页面源代码
- pic_url = re.findall('src="https://mmbiz.qpic.cn/mmbiz_jpg/(.*?)"',doc,re.S) #取得所有微信文章配图的IMG的URL
- for key in pic_url:
- imgurl="https://mmbiz.qpic.cn/mmbiz_jpg/"+key
- urlretrieve(imgurl, r"D:\hl\pdfs\IMAGES\{}.{}-{}.jpg".format(i,tt,random.randint(10000,99999))) #保存文件
- i+=1
- except:
- print(tt)
- time.sleep(3)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。