平時我們可能需要把感興趣的公眾號的文章保存為pdf,方便離線查看,也可以避免某些文章被刪除后看不到。所以我們需要把該公眾號的文章批量導出為pdf。這里我們使用python來實現該功能。
1、導出該公眾號的所有文章鏈接等信息為CSV文件。
首先我們安裝chrome的webscraper插件,用來爬取自己感興趣的公眾號的文章導出為CSV文件。文件保存文章的標題,時間和鏈接。具體插件的使用細節自己百度。
2、根據第一步生成的CSV文件批量導出為pdf
首先我們安裝wkhtmltopdf工具程序。然后編寫程序來讀取上一步得到的csv文件批量導出為pdf。這里由於微信的圖片防盜鏈措施,直接根據url導出pdf會發現圖片缺失。所以我們需要對請求得到的html文件進行處理后,再導出為pdf。具體核心代碼如下:
1 def process(item): 2 url = str(item[2]) 3 name = item[1] + item[0] + '.pdf' 4 response = requests.get(url) 5 html = response.text 6 html = html.replace('data-src', 'src') 7 8 try: 9 pdfkit.from_string(html, name) 10 except: 11 pass 12 13 with open("weixin.csv","r",encoding="gbk") as f: 14 f_csv=csv.reader(f) 15 next(f_csv) 16 pool = ThreadPool(processes=20) 17 pool.map(process, (i for i in f_csv)) 18 pool.close()
其中使用了線程池來加速處理生成pdf,本地測試一分鍾可以導出90+篇文章。
代碼:GitHub