掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 5541|回复: 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 编辑
    , E0 i2 h2 [$ e7 t# T. U; u; W% C/ N6 a) h- m6 e

    . p8 ~3 d" t0 E0 W6 z, k, fexe下载地址:
    / e( E) p' I; ~; D" Y, [5 u, {9 Q) W7 f# m$ k- x( z6 F5 D

    ; N; u9 J) Q3 V1 n* i) o% M3 ?一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    4 x7 C' ~5 ^( B: f7 a5 Z学新单词的时候,一次生成所需的单词解释、例句。
    , R$ }. X" h' J0 D0 |8 t4 O4 T$ U输入支持xls, xlsx, json, txt,输出支持html和pdf。3 o) C6 m+ n) ~) [
    这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。1 u' K6 z7 P: z+ X# _- C  R

    6 C' l: j4 [3 V5 Q! a关于怎么使用
    2 \3 X7 C0 m/ v  w! n比方说你希望收集以下单词
    " |' ^) O1 D; vLesson 1:hello world3 p9 w9 N( T) u# x+ T3 q7 B
    Lesson 2:this is a test9 \' Y) F, C/ p) v3 P1 \& M
    Lesson 3: .....
    ; [7 U0 J. n1 }+ M) V. [  S( k) Q+ F- L) Y
    你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    5 v' F; ^! U( Y: V5 s+ A" Q#Lesson 15 \1 I7 l3 [9 ]* M8 F* m3 U8 Y6 q
    hello# w) P: u; \( W+ q9 m% B9 ~- o
    world% n4 i; s% G1 ^% W& `( K  k6 @
    #Lesson 2" F' I$ _% m1 D4 K2 d; q4 Z
    this  z& m* [6 i8 B& }  x1 ~
    is; l- P* Y- m7 P% u; U$ D/ D
    a
    6 ]1 b% [& h$ B4 ~/ O& Otest
    : H. d( z, x! ]#Lesson 3
    9 F3 M0 T  x4 Q..... q) K3 m5 o! [
    # r( \( I  C9 R) j
    也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上$ @$ P2 J0 Z0 G% {. n
    也可以编辑一个json文件,不再赘述。9 J' E: W& ~# v1 W1 a) }
    $ U% p3 z" [' M- n, R
    然后在命令行下运行+ L. }/ T& [& K) o' T
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】' q6 z1 ]! O$ V' h  a, k
    : R% S. G+ }8 `: r0 n
    注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数% ^! [/ u+ f5 v8 N$ T
    --invalid 0 立即退出
    0 b4 z; k8 V3 c# c--invalid 1 输出警告信息到html/pdf中
    9 Z, ~* y/ M0 d, Z7 h( n' @; @  V+ u( h
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]4 e) B( `+ O0 c% A- J) p3 g" p
    2.                         mdx_name input_name [output_name]
      : b5 U1 N0 j; v) c" ^% ^+ V: L
    3. positional arguments:
      9 O/ x4 w- U9 ~, ~" u& r: T: f  H
    4.   mdx_name
      6 W( E* k$ J  x! A  \
    5.   input_name6 a6 c( A) e0 K$ X+ |
    6.   output_name
      5 r1 V4 u. H' m' Y( f6 K
    7. optional arguments:
      . u6 a) M: C1 t; O7 D/ Q
    8.   -h, --help           show this help message and exit
      6 @- c& g: D6 y$ k8 M* c/ X1 u  \
    9.   --type [{pdf,html}]5 T' p# e$ K  I7 M4 g7 a4 Y
    10.   --invalid {0,1,2}    action for meeting invalid words
      & O6 |8 z! F' W8 s
    11.                        0: exit immediately. I, Y* t/ k- D+ }) D
    12.                        1: output warnning message. l1 U2 ~, K/ o
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    ' c: l/ E( X/ M! Z8 W# Y

    + K$ d$ w6 c+ f
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码
    ) w( ^4 S6 W: L3 V+ `4 s

    ! m$ Y1 c; `# u. D8 v5 A- W输入
    # |) ?% l, I  s- b5 L( E; D: g8 F2 [txt 示例
    1. #Lesson 1/ \, ]5 k/ U# e- _
    2. hello
      5 K- O% N3 J) H) X2 j
    3. world$ j2 x% m6 o5 D8 y- r

    4. / E8 N- {$ T+ @
    5. #Lesson 21 @9 t+ s5 o( i( J$ _3 o4 ]
    6. python
      / ^/ ?, b) T; O: u
    7. is
      * l2 o+ w& b- O1 E
    8. awesome
    复制代码
    6 l, O1 m* h, Y' q9 c9 t4 b, Z
    json 示例
    ) Z+ n0 d9 X! a% W; Z5 L
    1. [
      4 g6 ^2 N! |' P4 C# K; N7 ?
    2.     {
      7 ]% m  D: |" @8 c0 i6 a
    3.         "name": "Lesson 1",
      ! G& |3 w+ P7 Z, P4 y* h. @
    4.         "words": [" N" {& p+ e8 N1 b, l
    5.             "hello",
      7 X+ A4 q- v6 K/ |6 [9 x
    6.             "world"" |' ]4 f% |9 _! o
    7.         ]+ X2 v/ i- v0 K# U. X8 I% C
    8.     },9 {% q1 Z8 f: Z3 n4 Y# m; o
    9.     {) h2 H+ o0 j' ?
    10.         "name": "Lesson 2",' v; ^) ?. z) C8 b8 E* F
    11.         "words": [7 T, a& ~# }$ K4 E
    12.             "python",
      ! r6 {3 c& e$ k: ^% K
    13.             "is",9 N, Z- V# j! H
    14.             "awesome"
      0 g) U) t, O, a7 N
    15.         ]
      3 K" a5 O# o* p5 E
    16.     }4 w. G6 {! k, S+ x  S4 j
    17. ]
    复制代码
    " t: v" K& }! N: A* L) q
    excel 示例' X! \4 E8 }! v# S3 F

    % \6 O! u* D0 X% E" A
    & i  O& f7 f! c输出/ ~( L# s  x8 D) U/ y8 a1 q
    (图片怎么弄都出不出来,我放弃了)- y7 C/ y8 L. ~
    HTML3 R  z  ^' ^* h* Q9 A- P  p9 ~. Z1 M

    " K3 l& k7 e, s$ \9 L1 y$ TPDF( t: d/ u, Y$ E
    , n8 B" G5 ~; Y* @3 A+ g
    2 @, O6 K3 U# t
    9 ?" Z8 q7 w+ s, R/ ?+ P
    ( F5 X1 f2 R- c

      E: H& I3 K% S. D/ d# G( o

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    $ Z* y% j: W; h3 [7 g但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    5 ]# l$ X$ ]8 M' t7 M
    可能是你选的词典词不够全。
    - }5 b% n) X+ F& X1 j! @反正开源的,你觉得怎么样好,可以自己改。
    7 ?& J- ~- D( C2 \- e- N8 z. @这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑
    & z# m7 q' w. H8 O1 H" @0 g5 H
    noword2k 兄:
    : T, o% s$ z1 O9 W2 T  T3 `html 說明圖沒顯示出來.....
    : O1 C, b7 M! ^3 H9 ~% C2 a0 \1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html8 I" @7 y: l/ q; l5 U1 l
    2. 若想生成全部的 headwords 該如何使用.....- c: C* @. p/ S  s$ a# R' `
    3. filename  可否和 headword 相同來生成. U: D6 |4 N; E7 F
    可否再請仁兄指點迷津解惑一下.....# n- L# r9 v+ r, R- u6 A
    Thanks a lot. S9 l( G8 u6 `6 v: k$ R7 o

    % ~1 ]$ [( c# w2 ]9 n
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29- @, i( E! e3 d& h) P  y1 _1 A
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch
    5 O) v9 K7 w9 d) W- ?6 K( p
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。: [0 c4 f$ t# O, e& W$ G
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    6 T' N7 j) j. A* Y+ V) S4 ]# |不喜欢用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:340 f  o/ n* D; [- T+ L; \0 \, P
    谢谢!下载了.exe后,怎么用?
    / {5 R* O/ a& ?1 \
    更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:111 w! N. |$ o5 p; a
    这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...
    9 ]2 c4 Q4 m& H  [* s* Z, u
    更新了一下帖子,增加了简单说明
  • 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
    $ V; _# C; [7 y0 a. j3 x6 Y$ Z可以判断返回的结果是不是为空,为空的话输出警告信息什么的。
    ; m) s9 z1 `3 }6 K3 j1 i, j2 Z但是就怕用户不仔细看输出信息,从而漏了 ...
    0 x7 O  @: E4 y3 G. ?, O# [
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    9 f. ?# J* j6 A; a: ~但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    " k( ^. Z) _' v) T% N
    想了一下,还是从善如流,反正是举手之劳。8 L5 ^, a5 ~7 Y. v6 e
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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
    # S; j3 B4 w- D3 e9 {/ k$ j已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    - J' w9 F2 u! n- c7 i# M' @现在是找不到的单词,在html或pdf中显示 warning 信息。! N% T) t2 x7 z% r6 j, B0 m9 R
    考虑统一放在最后,单独一组invalid words。
    # Q) `# @, _7 M2 N- C9 \1 I, h等有空再搞。
  • 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的每日心情
    慵懒
    昨天 20:03
  • 签到天数: 1720 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    # \  y. T* z  C  D0 h0 e/ r! ?
    7 m# m2 W" j/ w0 z& o

    该用户从未签到

    发表于 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 | 显示全部楼层
    楼主太给力了 赞赞赞
    3 k2 I2 G" N$ {5 i5 V: C& A
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-26 02:50 , Processed in 0.085821 second(s), 11 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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