刚生成的带书签 python王者归来 pdf 及制作方法
本帖最后由 我乐逍遥 于 2020-5-26 19:20 编辑第一次发帖,排版见谅:Dweeqw,正好学以致用用python解决了到处找书签目录的问题。python能力有限 方法可能比较死板
直接从文泉试读里面 抓取想要的目录 然后直接用PdgCntEditor 软件添加制作书签就快多了
觉得有用麻烦送上小红心谢谢{:1_932:}{:301_997:}
链接:https://pan.baidu.com/s/1coQSz_lL4UQTGlGPViQo4A
提取码:iqff
方法如下:
一、提取目录
二、使用 PdgCntEditor 软件添加目录
三、检测检查目录
一、提取目录
1、找到对应电子书文泉试读——打开审查元素—— network——搜索到目录相关文字 找到目录json
2、双击自动选中 可以直接打开 复制 或者 复制链接下载都行。
3、然后看到是这样一个数据。
4、接着用到刚学的python基础知识
桌面存放刚刚保存的json数据 json.txt
#!/usr/bin/env python# -*- coding:utf-8 -*-
import json
# 读取数据
with open(r'C:\Users\HAPPY\Desktop\json.txt', 'r', encoding="utf-8") as f:
load_dict = json.load(f)
json_len = len(load_dict["data"])
for i in range(0, json_len):
json_label = load_dict["data"]["label"]
json_pnum = load_dict["data"]["pnum"]
print(json_label, json_pnum)
if "children" in load_dict["data"]:
json_len_children = len(load_dict["data"]["children"])
for z in range(0, json_len_children):
children_json_label = load_dict["data"]["children"]["label"]
children_json_pnum = load_dict["data"]["children"]["pnum"]
print(children_json_label, children_json_pnum)
二、使用 PdgCntEditor 软件添加目录
1、先打开软件 打开需要添加的目录 然后把刚刚python解析的目录复制到空白
全选目录文字点击 自动切分页码
2、这里的目录 和电子书基本是核对得上的。
基准页就是PDF 打开的第一页,要和目录对应。
确定后保存
3、不用软件的目录缩进排版 也行,我这个目录级别不多,如果多级目录就点一点 (自动切分页旁边的键)
三、检测目录 (ok 没有问题)
ligxi 发表于 2020-5-28 15:46
我把脚本更新了,现在有了一个默认位置“脚本所在目录”。你可以再试试有问题欢迎反馈哈。
好的 谢谢 我改了个地方也可以了我试试你更新的看看
这是我改的
import requests
import fitz
# 功能:打开文件并添加目录
pdf = input('请输入需要添加目录的PDF完整文件名:')
# 解决cmd导致的符号问题。
if '--' in pdf:
pdf = pdf.replace('--', '——')
#
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
'x-requested-with': 'XMLHttpRequest',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
#
wq_url = 'https://wqbook.wqxuetang.com/v1/book/catatree?bid=%s' % input('请输入书籍的链接或bid:').split('/')[-1]
res = requests.get(url=wq_url, headers=headers)
if res.status_code == 200:
print('目录信息获取成功!正在添加目录...')
#
doc = fitz.open(pdf)
toc = doc.getToC()
#
data = res.json()['data']
for d in data:
toc.append(), d['label'], int(d['pnum'])])
if 'children' in d:
for c in d['children']: toc.append(), c['label'], int(c['pnum'])])
#
doc.setToC(toc)
#doc.save('New_%s' % pdf)
doc.save('New.pdf')
doc.close()
print('目录添加完毕!新文件名:"New_%s"' % pdf)
else:
print('目录信息获取失败,请重试!') 本帖最后由 ligxi 于 2020-5-28 21:09 编辑
文泉书籍添加目录的自动脚本代码::loveliness:
import requests
import fitz
import os
# 功能:打开文件并添加目录
pdf = input('请输入需要添加目录的PDF完整文件名:')
#
root = os.getcwd()
# 解决cmd导致的符号问题。
if '--' in pdf:
pdf = pdf.replace('--', '——')
#
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",
'x-requested-with': 'XMLHttpRequest',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
#
wq_url = 'https://wqbook.wqxuetang.com/v1/book/catatree?bid=%s' % input('请输入书籍的链接或bid:').split('/')[-1]
res = requests.get(url=wq_url, headers=headers)
if res.status_code == 200:
print('目录信息获取成功!正在添加目录...')
#
doc = fitz.open(pdf)
toc = []
#
data = res.json()['data']
for d in data:
toc.append(), d['label'], int(d['pnum'])])
if 'children' in d:
for c in d['children']: toc.append(), c['label'], int(c['pnum'])])
#
doc.setToC(toc)
pdf = pdf.split('\\')[-1]
doc.save('%s\\New_%s' % (root, pdf))
doc.close()
print('目录添加完毕!文件保存的位置:%s\\New_%s' % (root, pdf))
else:
print('目录信息获取失败,请重试!')
谢谢分享!!! 厉害了,多谢 本帖最后由 我乐逍遥 于 2020-5-27 10:45 编辑
清华 文泉其他电子书目录 基本都可以这样快速提取出来已经做了好几本了 (๑><๑) 膜拜高人 平均20k不到的速率,{:1_924:} 能不用百度就不用百度 kiweni 发表于 2020-5-27 08:55
平均20k不到的速率, 能不用百度就不用百度
文叔叔 https://ws28.cn/f/2ma0xuewbq5 这个不错喔,,感谢分享啦 我乐逍遥 发表于 2020-5-27 10:15
文叔叔 https://ws28.cn/f/2ma0xuewbq5
十分感谢{:1_893:}