掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 8239|回复: 75

[工具] 写了个抓取特定单词,生成html或pdf的小工具 MdxConverter v0.0.4

[复制链接]
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-2-28 10:10:04 | 显示全部楼层 |阅读模式
    本帖最后由 noword2k 于 2020-3-9 09:00 编辑 7 h9 S- u3 j: G. f* j

    ; b3 G, v" g( x( W) W/ B
      }! X2 X7 n; O2 Mexe下载地址:3 R$ i1 R  s2 l" l

    1 C( G) w7 i& v6 x4 b# X$ i, q( C. Q7 r$ ?3 f9 y  l
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    0 l/ H+ y; S; P7 y  P1 Y' h8 q学新单词的时候,一次生成所需的单词解释、例句。
    ! l/ B# X. d7 p" Y* J+ h输入支持xls, xlsx, json, txt,输出支持html和pdf。
    ; K2 n7 l- }9 k- Z& H1 k这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。
    0 t0 [* F  p" ~' q* U1 {) |5 C' U5 o
    关于怎么使用% n: X6 ?" ~. Z* p# s
    比方说你希望收集以下单词. e  b/ X& p% ^' }9 @: `
    Lesson 1:hello world
    / l4 Y/ @! _7 P! @Lesson 2:this is a test. ~8 |, R, i+ Z
    Lesson 3: .....
    7 b1 I2 ^/ ^: U: O) M( H& d/ m, Z9 K
    2 D# R+ Y% b! k你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    4 m+ l. S2 y5 s( L#Lesson 12 B6 O, i  Z5 d7 `* ^
    hello
    / x  k* s; L! P) s, Zworld8 ^" s6 d$ Z$ \. t) K8 d# K- V
    #Lesson 2: v& w, a( e6 X  s# o9 \
    this
    . h; p+ P! |" W! Fis1 O# b) Z0 J6 c# ?) ]& ]. O$ z. I7 j- ]
    a. H8 x2 z8 K, h
    test+ Z" A& W: ^- S
    #Lesson 3( a, p! k8 D7 X& L: Z3 ?& f
    ....
    $ `# x% O# x9 z0 g! _- L: {
    2 ~2 D1 Y4 n2 x* J: o7 A* `' [  H也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    # l6 n" e! @; S9 {( Y: r1 U也可以编辑一个json文件,不再赘述。6 p* R* y& e( \) e) C/ Y- E
    : h/ R& Y& |" k$ }# y7 O: i
    然后在命令行下运行
    9 d) ]/ |- N+ S0 j( a; J0 K0 eMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    $ p. Z1 C- I& R' t1 D( o; u3 z& \
    ; i3 m8 \* v% [& @+ Q, m注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数9 _/ S6 L) a% L: [8 I6 K: v
    --invalid 0 立即退出- }- A  W  Z0 L, q2 r
    --invalid 1 输出警告信息到html/pdf中
    ! h* L% w' T2 f4 H0 j) a  J: O4 S' n/ G0 w  Z
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]2 I* {, K2 q: Y' `+ S3 _' _9 e
    2.                         mdx_name input_name [output_name]* h: q: I; L8 x
    3. positional arguments:$ t, J) f  e5 D# p# x2 m' `. V- A
    4.   mdx_name
      ' s8 S) a! n* \* Z% @" g( q# ]
    5.   input_name) l' h1 V8 r- {( J1 z# p
    6.   output_name
      ' n1 u) A8 d; F. x% _2 O
    7. optional arguments:, _) m1 }2 F4 P! m; l" h
    8.   -h, --help           show this help message and exit
      + U7 i6 v( C" p/ x% u
    9.   --type [{pdf,html}]
      " q  d* Z/ E4 K' j% U  i" F
    10.   --invalid {0,1,2}    action for meeting invalid words! V. w( T" o8 H9 l8 B
    11.                        0: exit immediately
        N5 |* Y; G0 I1 ?1 c9 J
    12.                        1: output warnning message8 z) m/ k! ], @2 r4 U  d* _
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    % C$ |: E+ c$ V; n: b4 w) X7 A4 z* Q) |; B4 I# L
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    % F8 I& [7 T: m, u8 W1 P# g
    " `) M3 W6 A, w1 w0 l
    输入3 f4 r8 b7 \& g5 ?2 R
    txt 示例
    1. #Lesson 1
      $ Z$ M3 \# R, n, |: A
    2. hello; Y* K8 e4 [4 C" r$ q
    3. world
      ' C0 O) p; S5 b* S

    4. ) m  h; @5 A, C% ^7 Z
    5. #Lesson 2( f. c  j/ w/ @+ N" y) j
    6. python
      6 i, T! p5 p/ ?% j$ O6 v
    7. is
      ( O$ L( c7 l: T& h' b
    8. awesome
    复制代码

    . r7 t' i) H$ K+ s" _/ m' L6 _json 示例
    + K5 g/ I! p( x  y
    1. [+ n0 h% L) p' Q& K: L% U# s, d
    2.     {
      , R( Q( W8 K" A" T" Q9 M
    3.         "name": "Lesson 1",
      / R5 E7 C# W& c0 m
    4.         "words": [
      ' o" `/ k9 ~- o7 O3 ~) P
    5.             "hello",# B. v: T4 q! ]: {) J4 O
    6.             "world"% o$ g% _4 g+ \( e
    7.         ]
      : n& n* x, C& W( C
    8.     },
      # B3 c& Z; ?3 a
    9.     {9 t, Z7 Y6 s. ~! B' H! t2 D
    10.         "name": "Lesson 2",% d+ a4 S) n- I' g8 D
    11.         "words": [8 \) y* g& C, q# E
    12.             "python",
      " r* J. D4 l+ I
    13.             "is",
      8 n* d" J/ X6 c* h$ S" w
    14.             "awesome"
      ) P; _( T% F& W; o; `1 c% i  l. V8 j
    15.         ]9 J+ i- c  a8 H
    16.     }) ~+ I/ J2 {) s( z; _- Q; G2 t
    17. ]
    复制代码

    # }4 s' U9 }: }* V/ X+ kexcel 示例
    / ~0 |5 d" u# T1 J' d& H' h! v* ]7 S8 z& B
    & }: v, e4 }3 f- \. @0 p) U/ o; `+ F
    输出1 J2 o+ n( n) x
    (图片怎么弄都出不出来,我放弃了)
    ) U2 H7 i! Q$ s9 THTML4 V# Y+ o$ Z$ k% Z9 y. E! V" D- _/ ]
    9 F; [4 G. c: R7 \
    PDF
    ( J. |( C4 b$ ?& P; O! |' t. o. `. A  z' S9 ]

    3 P6 f! E* o% G& Y4 }) |# U" Y. U7 Y' L. L6 a

    % Q2 R- R  c( m( A  j9 n2 [7 I! u* A* L! M# d! c7 ^% S

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?免费注册

    x

    评分

    4

    查看全部评分

  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:337 T. \7 @  _, n! y& m8 U4 N. N
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    2 m" _# \$ w6 n
    可能是你选的词典词不够全。/ O7 M+ `- Z. u0 E& U( o$ O0 M% ~+ M
    反正开源的,你觉得怎么样好,可以自己改。/ j7 `1 g9 |1 [- l
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 5 J, P+ S8 P, z1 v( R3 R; R. L
    6 P$ r6 Y4 w% i4 o2 L% `' E( V
    noword2k 兄:
      s) S* K" u; M" Fhtml 說明圖沒顯示出來.....+ |# t; J0 p; ^, F
    1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html% t- o6 N; F8 R# [
    2. 若想生成全部的 headwords 該如何使用.....
    # d6 }1 ^2 J- t7 ]3. filename  可否和 headword 相同來生成( j) Y7 @, T  \
    可否再請仁兄指點迷津解惑一下.....
    $ S4 h2 _  K+ A* M* a8 iThanks a lot: ^! T  t# T2 ?9 B. J: [) E
    9 K$ U7 |; s7 Z7 w  G
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    , U$ A- Z+ o$ t  h# o3 k热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
    ; E( D3 ?/ v' \) I
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。4 E1 y" W# z6 |! e
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    1 u- ]6 [" \' ]4 j' g不喜欢用try..catch,太丑,开销太大。
  • TA的每日心情
    开心
    2020-3-25 07:07
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-2-28 10:34:18 | 显示全部楼层
    谢谢!下载了.exe后,怎么用?
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-28 11:11:18 | 显示全部楼层
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用
  • TA的每日心情
    开心
    2021-4-24 08:20
  • 签到天数: 634 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:28:32 | 显示全部楼层
    谢谢分享   好羡慕楼主  能自己写自己需要的程序
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:36 | 显示全部楼层
    elusty 发表于 2020-2-28 10:34) t# n) i! U7 ~" ~! {" F. o7 W% G' Y
    谢谢!下载了.exe后,怎么用?
    ) J, W8 O  s& r, b4 ~3 ]% S
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    % Y. B/ M  A5 f. b这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    : p, l- d/ g% Z+ T5 x更新了一下帖子,增加了简单说明
  • TA的每日心情
    慵懒
    2022-1-17 18:55
  • 签到天数: 464 天

    [LV.9]以坛为家II

    发表于 2020-2-28 11:49:46 | 显示全部楼层
    太棒了!支持楼主!
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-28 15:29:25 | 显示全部楼层
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
  • TA的每日心情
    慵懒
    2020-5-3 16:00
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2020-2-29 05:33:01 | 显示全部楼层
    noword2k 发表于 2020-2-28 17:54
    % O) Z, M0 V( R* e4 ^可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    9 u, c9 V# [0 ]但是就怕用户不仔细看输出信息,从而漏了 ...
    2 ~1 x1 Z' R; n/ F: p5 C- v
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33! X! j0 |% ~% g: J$ A9 r) O
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    0 n( ?9 d5 r) k想了一下,还是从善如流,反正是举手之劳。0 Z  ], h7 x  X( w" v8 Z
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • TA的每日心情
    奋斗
    2023-8-12 09:33
  • 签到天数: 1459 天

    [LV.10]以坛为家III

    发表于 2020-2-29 10:17:15 | 显示全部楼层
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单词。所以不知能否实现:把能找到的单词全输出来,找不到的单词列在输出文件的最前或最后。多谢!
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 10:31:18 | 显示全部楼层
    neilzhu 发表于 2020-2-29 10:175 r& o% x& d: P
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    # U) S/ I% A" r* [* ?& C现在是找不到的单词,在html或pdf中显示 warning 信息。2 j# M, e6 X6 L' x8 \8 f# o  e1 Z
    考虑统一放在最后,单独一组invalid words。2 S9 f; ^: O+ L8 ?9 V. F
    等有空再搞。
  • TA的每日心情

    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-2-29 11:53:31 | 显示全部楼层
    没有的单词跳过,另存一个文本格式单词表吧,谢谢不断更新,持续围观
  • TA的每日心情

    2021-10-23 19:58
  • 签到天数: 212 天

    [LV.7]常住居民III

    发表于 2020-3-3 01:11:57 | 显示全部楼层
    给力又热情,高风亮节啊,高兄
  • TA的每日心情
    慵懒
    14 小时前
  • 签到天数: 2090 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。. V& Y9 J3 a7 u, o: J

    + p# ~, N! u, M0 H7 X; X

    该用户从未签到

    发表于 2020-3-11 14:34:44 | 显示全部楼层
    太方便了,如果可以用exe有执行界面就好了。

    该用户从未签到

    发表于 2020-3-16 15:45:29 | 显示全部楼层
    Mac能用不,下载试试
  • TA的每日心情

    2022-12-20 09:47
  • 签到天数: 375 天

    [LV.9]以坛为家II

    发表于 2020-3-17 16:26:43 | 显示全部楼层
    太棒了! 多谢!楼主!
  • TA的每日心情
    开心
    2025-6-18 20:22
  • 签到天数: 981 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞2 {/ u) X4 B* Z8 \: k
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2025-6-27 23:27 , Processed in 0.025339 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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