我乐逍遥 发表于 2020-5-26 17:25

刚生成的带书签 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 没有问题)
         

我乐逍遥 发表于 2020-5-28 15:49

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 11:56

本帖最后由 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('目录信息获取失败,请重试!')

zhwt1234 发表于 2020-5-26 18:04

谢谢分享!!!

winbug 发表于 2020-5-26 19:16

厉害了,多谢

我乐逍遥 发表于 2020-5-26 23:01

本帖最后由 我乐逍遥 于 2020-5-27 10:45 编辑

清华 文泉其他电子书目录 基本都可以这样快速提取出来已经做了好几本了 (๑>؂<๑)

HidendDragon 发表于 2020-5-27 06:37

膜拜高人

kiweni 发表于 2020-5-27 08:55

平均20k不到的速率,{:1_924:}  能不用百度就不用百度

我乐逍遥 发表于 2020-5-27 10:15

kiweni 发表于 2020-5-27 08:55
平均20k不到的速率,  能不用百度就不用百度

文叔叔 https://ws28.cn/f/2ma0xuewbq5

csa 发表于 2020-5-27 17:49

这个不错喔,,感谢分享啦

kiweni 发表于 2020-5-27 19:28

我乐逍遥 发表于 2020-5-27 10:15
文叔叔 https://ws28.cn/f/2ma0xuewbq5

十分感谢{:1_893:}
页: [1] 2 3
查看完整版本: 刚生成的带书签 python王者归来 pdf 及制作方法