吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4407|回复: 30
收起左侧

[Python 转载] 52Pojie指定文章一键生成PDF,方便收藏查看

  [复制链接]
null119 发表于 2022-2-12 19:04
本帖最后由 null119 于 2022-2-14 10:39 编辑

油猴版本(支持CSDN):https://www.52pojie.cn/forum.php?mod=viewthread&tid=1587516&page=1&extra=#pid41588981

起因:论坛有不少精彩的文章,有时候想保存方便后续查看,除了加入收藏夹似乎没有什么更好的办法,于是花了几分钟写了下面这段Python代码,同时分享各位



目的:一键获取论坛指定文章生成PDF


[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
# @Author: Null119
# @Desc: { 52Pojie文章生成PDF }
# @Date: 2022/02/12 17:55

import os,requests,re,pdfkit,urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

def writehtml(path,str):
    f = open(path,'w+',encoding='utf-8')
    f.write(str)
    f.close

def main(savePath,cookie):
    url=input('请输入文章URL:')
    headers={'Cookie':cookie}
    html=requests.get(url.strip(),headers=headers,verify=False).text
    title=re.search(r'id="thread_subject">(.*?)<',html).group(1)
    print('文章:',title)
    td=re.search(r'id="postmessage_\d+">([\S\s]*?)</td>',html).group(1)
    img=re.findall(r'<img aid="\d+".*?\)"',td)
    for i in img:
        exp=re.search('src=.*?file=(".*?").*?\)"',i)
        td=td.replace(exp.group(0),'src='+exp.group(1))
    td='<html><h1><a href="%s">%s</a></h1><br>%s</html>' % (url.strip(),title,td)
    if not os.path.exists(savePath):
        os.makedirs(savePath)
    if (savePath[:-1]!='/' ) and (savePath[:-1]!='\\'):
        savePath=savePath+'/'
    writehtml(savePath+'temp.html',td)
    print('开始生成pdf,请稍候...')
    path_wk = r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe'  # wkhtmltopdf安装位置
    config = pdfkit.configuration(wkhtmltopdf=path_wk)
    options = {
        'page-size': 'A4',
        'margin-top': '0.75in',
        'margin-right': '0.75in',
        'margin-bottom': '0.75in',
        'margin-left': '0.75in',
        'encoding': "UTF-8",
        'outline': None
    }
    pdfkit.from_file([savePath+'temp.html'], savePath+title+'.pdf',options=options, configuration=config)
    os.remove(savePath+'temp.html') #删除临时html
    print('任务完成!')

if __name__ == '__main__':
    cookie='' #访问保存需要登录浏览权限的文章需要设置cookie
    savePath='E:/吾爱破解/文章收藏/' #保存PDF的目录
    main(savePath,cookie)




效果:

01.png

052.png

生成文章的标题链接即为文章的原始链接,点击标题即可跳转论坛查看原文




注意:代码中使用了pdfkit库来生成PDF,关于这个库要说明一下,PIP安装后直接使用还是会报错,还需要下载安装wkhtmltopdf
下载地址:https://wkhtmltopdf.org/downloads.html
下载安装完成之后在代码中修改相应的path_wk wkhtmltopdf.exe路径就可以了

免费评分

参与人数 8吾爱币 +13 热心值 +6 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
片地花开 + 1 + 1 热心回复!
sam喵喵 + 1 谢谢@Thanks!
rzhxw + 1 热心回复!
ff5500 + 1 凡是需要额外安装库的,框架的,都是先回复,再丢沙箱
yjn866y + 1 + 1 热心回复!
homehome + 1 + 1 谢谢@Thanks!
夜泉 + 1 + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

homehome 发表于 2022-2-12 20:47
「wkhtmltox-0.12.6-1.msvc2015-win64.exe」https://www.aliyundrive.com/s/w17xj6hFsg6
楼主所提到的wkhtmltopdf,官网下载的有些慢,下载一个64位的放在云盘里,需要的请下载
DeathLYH 发表于 2022-2-12 20:15
夜泉 发表于 2022-2-12 19:14
血情 发表于 2022-2-12 20:10
有exe软件,就更好了
torrent 发表于 2022-2-12 20:11
前排支持
homehome 发表于 2022-2-12 20:16
这个工具很强
知心 发表于 2022-2-12 20:58
感谢楼主分享,如果只是想保存的话,在页面上使用打印功能另存为pdf是最方便的
miqi1314 发表于 2022-2-12 21:12
知心 发表于 2022-2-12 20:58
感谢楼主分享,如果只是想保存的话,在页面上使用打印功能另存为pdf是最方便的

是的,我就是这样做的
 楼主| null119 发表于 2022-2-12 21:16
知心 发表于 2022-2-12 20:58
感谢楼主分享,如果只是想保存的话,在页面上使用打印功能另存为pdf是最方便的

打印功能会将整个页面内容全部保存下来,无关的内容太多了,SO。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表