掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5574|回复: 73

[工具] 写了个抓取特定单词,生成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 编辑
    ) y+ m' {0 H' w! _- a/ r0 K
    2 ?4 {' J! c5 d, E3 M) R8 J8 v& n" O3 Z( I; @/ `3 C$ n: c
    exe下载地址:
    ! b: |" e/ p; T# k0 e
      I& d9 q, ]0 ^. c$ d( x% n0 i$ g1 X4 I8 }/ R
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。" y0 A9 ~$ [) R$ d: C
    学新单词的时候,一次生成所需的单词解释、例句。
    : Q( i  C' Z# [+ {5 v6 T1 b) z输入支持xls, xlsx, json, txt,输出支持html和pdf。
    : f: Q$ M$ j0 Y+ m! _  B- e8 S2 C这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。
    + N" z, _* W5 n8 Q/ r- g( k
    & `' T- P+ Y9 L0 G4 O关于怎么使用
    ) h' m: K2 o* U5 F2 ~比方说你希望收集以下单词3 F* h: W. y8 ]& u/ x
    Lesson 1:hello world4 o2 n0 L& O" H# u
    Lesson 2:this is a test2 u/ l$ z% g* A3 n. V5 A3 S3 K
    Lesson 3: .....; V' b5 ]* T8 n5 t
    0 a1 C& p1 \$ w' @8 M! _. `4 g
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    & I4 |9 i5 g* H2 j6 F" s#Lesson 1
    0 d/ d9 W  z# Z1 o/ F: ?. ahello. Y# K% B3 w# P0 x8 I: T
    world8 z, _* ~* ~1 p" `% N3 h" p( Q
    #Lesson 2
    6 d3 z( p" ?' b, G; b% Tthis
    ; c8 S3 N; z4 T4 Pis
    7 E& h" y# M4 E# o6 ta' ]" N. z# I- u
    test
    & f" P$ E4 Z6 V5 m* q7 ]#Lesson 3
    4 F+ L& o2 o: \/ Q; V( d....
    * h9 [  O3 i9 V+ y: Q) p3 m
    ; I6 H/ z' R. a8 H7 Q也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    4 O; C: c, s$ q; r) t也可以编辑一个json文件,不再赘述。
    7 [0 P& Y4 i2 p6 f( H* @) }- Q- K+ S7 K0 \
    然后在命令行下运行
    7 P( ~' V9 J: ^" |" v7 ]/ UMdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
    # H/ ?! J* h: V% c7 D0 y5 J) K
    1 B9 A( V8 X) I$ ]# M" I注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数/ p5 G. V9 e1 C4 C
    --invalid 0 立即退出
      y$ ]3 H$ ~! @2 k, m# a+ |--invalid 1 输出警告信息到html/pdf中
    9 f3 b/ ?9 ~  C& I# E/ f' E- P* J
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      8 ?" f! u2 v$ O. Q. ?' B
    2.                         mdx_name input_name [output_name]
      8 o, j, K; _; I& p0 P# H1 S9 c  E- Q
    3. positional arguments:
      , r7 F* @& k" y( D) S$ T
    4.   mdx_name
      ' r& g: O6 e& n) i( K
    5.   input_name
      # T6 @+ A( M- l7 S& P% K9 M
    6.   output_name1 U8 d: h- {1 x6 L6 E. W
    7. optional arguments:
      " {" t+ b0 [/ `, T3 m; b% y
    8.   -h, --help           show this help message and exit6 u( }" K, n% e( M; e) Q& L
    9.   --type [{pdf,html}]9 p3 m9 R3 f; m8 ~- c: b
    10.   --invalid {0,1,2}    action for meeting invalid words
      ) U) X0 a$ N: Z( s1 i# w+ S
    11.                        0: exit immediately
      7 E; `0 A9 {" f  ^
    12.                        1: output warnning message
      . R/ h2 ]* ^) [4 S0 y5 e$ K
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码

    9 u8 V$ y. r6 d9 Q2 h) x& x$ T0 d: K; o# Z6 _2 A
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    . [* E$ V. A! u3 a

    6 \% a( @  @$ u; ~% D. x3 J+ _输入
    8 B( Y3 a* Y2 r* A: W4 otxt 示例
    1. #Lesson 1
      3 Y! ~; o- c2 {2 y8 Y9 d) c
    2. hello
      + j2 v6 c# q4 F( |
    3. world; b5 d4 q  [9 v( p( P& s
    4. ' R5 N: t5 ]9 g4 ?0 Y6 L% F
    5. #Lesson 21 b  N3 w# g# l# _1 t
    6. python
      0 f' a$ K6 V/ `/ y0 {8 G) [
    7. is2 t3 s4 i8 x7 I& a: ?
    8. awesome
    复制代码
    2 i4 {$ `5 K8 ^1 T& K# w2 ]
    json 示例0 H! b" J& w4 v, P
    1. [
      ; ]2 c4 P  t; a% h9 p7 B
    2.     {
      $ [/ O1 T1 E5 P$ T8 x5 M- l
    3.         "name": "Lesson 1",# C6 j  @. Y/ s' a2 @
    4.         "words": [
      8 O0 B% J2 Z- T& A+ E7 J- s$ U  J
    5.             "hello",3 f, z" l5 f8 \1 R) n; ]
    6.             "world"& ~& i% |/ d2 u/ K& w; a
    7.         ]
      0 }1 u6 l9 y+ ]9 `
    8.     },' [1 c, c5 g  ]! ^! @4 v
    9.     {5 }7 L1 u+ D+ \* J
    10.         "name": "Lesson 2",* `- a4 `% z- t; w7 {8 r. H9 R
    11.         "words": [, H( n7 a) v6 O& N
    12.             "python",) Z3 X% H" p4 b2 a9 v
    13.             "is",
      4 l' ~8 J# t  g1 R
    14.             "awesome"
      " `1 T5 O! B# N! O" g
    15.         ]
      : ?8 K, ]1 }' j9 ]
    16.     }6 v3 b& d3 B% k( e7 H6 ]3 f
    17. ]
    复制代码

    $ r) L) Z9 _, A. B1 ~( g" qexcel 示例5 I4 u( y$ _1 T4 M' E+ O
    ( v4 Y8 z7 i$ C4 v: w

    4 m1 Z1 v6 i, e' e+ p' j* [3 V输出" R7 U, G$ L" D: M; p0 k1 s1 @7 I- L
    (图片怎么弄都出不出来,我放弃了)
    & H' H& V& d2 ]/ ?, g1 ~! Z. SHTML
    / F& n& Q: U0 s6 [, a) O- W* x- `7 \' ~! R
    PDF
    1 L; h" S2 Q2 H5 E) K5 g, e0 E2 D% F4 u; t. ]% h
    # l7 C, }* U. u* K" i: e# e

    / j5 P6 }2 |" X* y* C  y* t/ z9 H8 P  y) U1 u" s; a0 f1 q

    / O( P+ U5 r# y6 c7 j3 Y

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    # ?" ?* i6 X- @4 \8 F* o但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    * {% D/ H. U. h9 A' B* R可能是你选的词典词不够全。
    3 }/ r+ p( n! N; k* ?) [6 c# {反正开源的,你觉得怎么样好,可以自己改。
    & W% g! m0 k6 l这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 ; P# l# r6 r- O  t9 K0 Q

    6 r( ^1 c) ?. _1 O' p, m4 Qnoword2k 兄:
    ( h& J4 S- e- thtml 說明圖沒顯示出來.....
    . e# U" u" C$ L$ @! S- O' q1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html
    + o- o$ g" a) |2. 若想生成全部的 headwords 該如何使用.....
    + q1 [0 d' q3 r3. filename  可否和 headword 相同來生成
    + ]2 Y* p: u5 b. h1 r可否再請仁兄指點迷津解惑一下.....
    9 j/ [4 U5 r. G# B, {Thanks a lot
    - x7 S1 Z1 R2 X& w! E$ d, b7 v2 o
    ' T( [$ _+ Z: h/ m8 j' s7 f! _+ s) b, u& g
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29
    ; z$ |2 Q" Y: J6 W/ @/ u热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    - f' u8 j" Z! B+ d" e/ O可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    / h( K; m' {+ N- G但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。) ~$ q5 ^1 d; {! C& i7 y0 w
    不喜欢用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
    0 c8 c1 C5 l( M4 c6 G' l谢谢!下载了.exe后,怎么用?
    2 r$ I, p8 P2 u: W1 P; F9 a4 ^1 W
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

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

    * F% h$ ^+ D, Q, J# Q- 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:546 k4 v' \% g+ Y# V* T) s* C
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。/ {4 Q% {+ p8 b5 t. l+ T
    但是就怕用户不仔细看输出信息,从而漏了 ...

    : A9 A0 }5 J  z但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    , ?, t  v% Y+ T  a, t0 ~但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...

    % l% ]" ^% z  l# z& b5 o想了一下,还是从善如流,反正是举手之劳。
    + c8 ?5 s9 ~& S& S  t9 B4 u) E; V6 a新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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:17
    8 V' Z5 k+ S, K3 `; j' g已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...
    ! s: I, W8 g' I* i, q4 D
    现在是找不到的单词,在html或pdf中显示 warning 信息。* A) @% ]& D' @8 j/ _& X* J, K
    考虑统一放在最后,单独一组invalid words。
    % \6 N! N$ n% m# Z8 p, Z% T等有空再搞。
  • 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的每日心情
    慵懒
    13 小时前
  • 签到天数: 1724 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    6 t3 W* `6 K3 F8 D+ ^3 C! V
    0 l, K. W. Q! W

    该用户从未签到

    发表于 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的每日心情
    开心
    2024-4-18 10:17
  • 签到天数: 929 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    ' D1 r& @+ F& N
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-29 20:25 , Processed in 0.063604 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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