掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 10562|回复: 76

[工具] 写了个抓取特定单词,生成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 编辑 0 Y) X/ S9 w* e$ ~% B" c% k0 [# Y
    - W  ?. @$ }* F! ^7 b( G7 b
    ; Z2 n! t' {& v3 F0 z8 z  b
    exe下载地址:4 e$ a, i* t# k4 n; z3 X

    5 F5 E% a8 S- D( E! Y* W, w# [$ j5 H+ d2 t4 \
    一个用来从 mdx 字典中抓取所需的单词,并生成 html 或 pdf 文件的小工具。
    / x, v$ I7 {3 Q学新单词的时候,一次生成所需的单词解释、例句。
    & L9 |( L5 u) H$ j3 ]输入支持xls, xlsx, json, txt,输出支持html和pdf。
    2 W1 R+ F/ J% ^/ q  k3 t  `这个工具没有GUI界面,我也没兴趣做一个GUI界面,不会用命令行的同学就忘了这个吧。  K1 U5 s, m% f8 \% Q5 W3 n( a

    ( R$ Q+ v/ d2 D% H1 c6 O关于怎么使用. `3 l4 q8 n( j4 H, p0 T  |
    比方说你希望收集以下单词
    6 H' k8 ~& |6 \) Q" t# a9 p6 lLesson 1:hello world
    9 }/ i3 P  Q4 `: e5 o3 XLesson 2:this is a test
    0 {, n8 }, g' B/ T/ X3 o0 j6 vLesson 3: .....' e2 ^& t4 z+ D% q$ a1 j

      p2 A* g' W0 _3 Y8 U  v你可以编辑一个txt,一个单词一行,课程名称用#开头,格式如下:
    ! z2 ]) z0 h. D; w% [; e9 n: K8 q- h7 Z#Lesson 10 F; z; s# W3 Z, p7 A0 p
    hello2 B( Q# D0 d7 G# g& x2 o  l/ Y
    world
      f/ f$ X+ ^4 H2 i#Lesson 2+ x; s# K' g6 J
    this
    . Y% A, V- a4 `- o- Yis0 {% Z+ r7 V- T
    a
    ' ]9 K5 n$ ?2 {test
    5 d5 |( k) z8 a: M& P/ N#Lesson 3
    . m! D1 m1 j2 X& g0 I! t...." H  a/ e" ], h6 R

    ; d0 o# j) ]. F& I) a" y4 U. f7 y也可以编辑一个excel表格,一个sheet就是一个课程,sheet名称就是课程名称,单词排列在第一列上
    1 O9 T1 [8 w( U. T" U  N$ }也可以编辑一个json文件,不再赘述。9 G1 g9 b  M1 j$ t( l* w: f0 ]& g9 e

    6 y  c0 s! T/ l' p3 M% O. u然后在命令行下运行7 ]0 k; n4 c& L1 E+ U8 W
    MdxConverter 【mdx字典名称】 【输入的文件名】 【输出的文件名(后缀为.html或.pdf)】
      J$ N5 G- f' j" o$ k* z
    3 u* A) t" l* `( s) V" w0 i( C注意:如果有mdx词典中不存在的单词,程序会显示报警信息,默认动作是收集到invalid_words.txt中。你可以设置运行参数$ g+ _0 L& U2 V. `& A
    --invalid 0 立即退出
    1 g$ v2 Z! J& [( T* v* Z--invalid 1 输出警告信息到html/pdf中6 s+ c9 F, D$ B! m& q1 c8 Y
    4 w, l  d8 v4 l9 t- G
    用法
    1. usage: MdxConverter.exe [-h] [--type [{pdf,html}]] [--invalid {0,1,2}]
      / r+ Y6 ~- b) i1 k2 L/ Y" u
    2.                         mdx_name input_name [output_name]
      $ f9 ]6 W( y7 g
    3. positional arguments:& f; N2 s1 M8 ]
    4.   mdx_name" @! ^  ?4 ~: v
    5.   input_name$ S3 U/ }, O5 R$ M( g, D
    6.   output_name9 A% g, [) d7 |1 T+ y+ H0 x8 {. x
    7. optional arguments:
      : |. G; F% ]' c, v
    8.   -h, --help           show this help message and exit. B' I1 F$ K& {5 ~' n* N3 V) ?
    9.   --type [{pdf,html}]8 W6 Y0 I) O: e/ P
    10.   --invalid {0,1,2}    action for meeting invalid words
      ) B1 z8 |% f6 w! A2 e
    11.                        0: exit immediately! l. i, v* H$ |; K) Q8 m# u
    12.                        1: output warnning message
      5 K$ o- c& S* {  ]; ^7 T$ L" j$ V* C
    13.                        2: collect them to invalid_words.txt (default)                        
    复制代码
    ' o+ q& b( N: |1 V/ O7 b
    5 f6 g0 c# n* w3 p6 a
    例如:
    1. MdxConverter 某某词典.mdx input.xlsx output.pdf
    复制代码

    . g. j7 t+ T7 Y9 c. i! y( c; Y1 i, i% b
    输入" x4 G4 N% O1 I! ~/ P, ~7 J
    txt 示例
    1. #Lesson 15 Z/ Y9 ^. j5 l9 m
    2. hello
      ( N- l% |7 p7 Z
    3. world
      0 k( ^8 f" `1 [, v2 M
    4. ; s9 U& q, Q2 ?4 u$ u% \6 ~$ l
    5. #Lesson 2
      " K1 f; @% k) e5 s. j- S
    6. python( a' _' n* |. P( c
    7. is: \8 y; E+ L9 j; R' W
    8. awesome
    复制代码

    7 A) l& n1 Y9 H6 C; tjson 示例
      W# i4 `6 t# `) ~2 s( Q
    1. [- u, g+ i) b: D4 ]5 ?
    2.     {
      1 `, E9 E, T4 w0 s; ]; w8 |
    3.         "name": "Lesson 1",
      ) Y0 E$ A8 `. L
    4.         "words": [  W1 j3 m" B( V' E8 Z, _% d& M! D+ E) s4 J
    5.             "hello",/ ], |9 Q1 w0 K1 k$ l( K) D
    6.             "world", B" M" O. C- f' E0 z# g3 a
    7.         ]
      2 v6 p# S- D- G. N' R$ g
    8.     },
      6 D; q+ V; y0 j! l0 F1 y# y
    9.     {1 ^5 T! F; ^. F$ |% A# G0 {
    10.         "name": "Lesson 2",4 T2 Y. ?9 @: j
    11.         "words": [; V7 C3 x& d: L) ^5 _
    12.             "python",; {- i. |: Z* D/ R. q" ]0 H
    13.             "is",, h+ z9 _7 Z) g" p0 @8 H
    14.             "awesome"
        P! M# [9 }/ i  K& x
    15.         ]
      , E# G9 `0 N8 u4 E
    16.     }
      5 |1 q- I' l5 ?
    17. ]
    复制代码
    , W! p2 W4 q# `2 G9 F% m" l
    excel 示例
    / N) p& e& S* u; r& \7 [/ t$ n4 f1 F8 T

    & s" j1 h! w. Z4 }2 \9 ~. l输出  r5 y7 i, B  J5 z) U3 ^. Q9 O
    (图片怎么弄都出不出来,我放弃了)5 \3 |7 N; F) M0 B6 A" M- u2 e
    HTML
    4 D1 a3 `" r4 z
    , t- g; T. m0 k0 q/ q7 C2 Z' ZPDF
    : l$ [3 H, J9 v* T" {2 B* m& c' n
    7 s5 d9 f( \7 V- ^# M! e) ?/ _$ L! z  }, N
    9 ~+ i$ c0 b: P$ h8 A. Y1 g% W

    3 d, Z) k2 M0 G& m9 C8 h
    % s( _5 A) w8 n

    本帖子中包含更多资源

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

    x

    评分

    4

    查看全部评分

    本帖被以下淘专辑推荐:

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

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:11:44 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33
    4 q, `+ I1 `2 c! P3 L: \但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    ' C* U  _% ]* i( ^$ R
    可能是你选的词典词不够全。2 N, Z  z3 q3 Q* q
    反正开源的,你觉得怎么样好,可以自己改。: }" [2 C5 e9 a: V2 T5 o# }
    这就是一个我给自己家熊孩子写的,让她学新单词时用的的小工具,做好后顺便放出来,现在已经满足我的预期要求了。
  • TA的每日心情
    开心
    2018-8-8 03:13
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-3-22 16:12:31 | 显示全部楼层
    本帖最后由 喬治兄 于 2020-3-22 16:32 编辑 % F) d* t6 J" E+ p6 S

    ' L! [" Q0 w  n8 g+ knoword2k 兄:$ g2 s' I0 F% z
    html 說明圖沒顯示出來.....
    / D5 O' d( q0 r) R% m! @1. 起問是否一個 headword 生成一個 html 檔案 or 多個的 html 檔案根據 headwords 多少個就多少個 html& L% Q, d4 U% \, u. V9 W. E
    2. 若想生成全部的 headwords 該如何使用.....
    " U2 Q: O( o8 U* @8 A' m" z3. filename  可否和 headword 相同來生成+ C& A* u6 o: D) d8 r, _: J
    可否再請仁兄指點迷津解惑一下.....0 |+ b2 A# G. o) `' u" U
    Thanks a lot# l/ S! O6 }: O* ~8 g: A8 V7 \: V

    ' }( W# Q8 ?4 z+ s
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 17:54:45 | 显示全部楼层
    johannhuang 发表于 2020-2-28 15:29* ^" t8 s$ e8 b$ w' ]8 {
    热情很棒 不过出错就重新编辑的逻辑有点不好哦 建议加try...catch

    8 E  R$ i+ r& S+ ~" P9 t; X可以判断返回的结果是不是为空,为空的话输出警告信息什么的。# g" W& U9 B5 c. p
    但是就怕用户不仔细看输出信息,从而漏了单词,干脆出错强制退出。
    ) \* B" V) `' M; P. Z+ j  m不喜欢用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; k2 V* v/ ]0 b4 `2 }% s
    谢谢!下载了.exe后,怎么用?

    5 d; t! z) i% e7 c. ]  D9 T更新了一下帖子,增加了简单说明
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-28 11:48:50 | 显示全部楼层
    neilzhu 发表于 2020-2-28 11:11
    ; X6 ^) `! j$ C  F9 f这个程序挺实用的,可惜不会python。正在下载exe,不知道有没有比较好的说明书之类的,希望能会用 ...

    . V8 f# L) R) \6 A更新了一下帖子,增加了简单说明
  • 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:548 ~( g% l. @6 B7 s. Q% F) v3 G
    可以判断返回的结果是不是为空,为空的话输出警告信息什么的。$ U1 y# x4 o7 h$ g' ^
    但是就怕用户不仔细看输出信息,从而漏了 ...

    : G! k1 _) [4 n" C2 C但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺
  • TA的每日心情
    开心
    2020-2-29 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-2-29 08:45:05 | 显示全部楼层
    johannhuang 发表于 2020-2-29 05:33( }+ Y0 A" ?; o; I
    但你这样一没有就退出 我觉得改词表会改到怀疑人生何苦 不如用Python 讽刺 ...
    0 g. p4 Y! f! P# g+ R2 F# c
    想了一下,还是从善如流,反正是举手之劳。4 Q6 v# g, Q! k
    新版的遇到没查到的单词,会显示警告信息,然后继续。
  • 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" ?& C. A9 K+ ?
    已经试用了昨天的exe版,新版的正在下载。昨天的那个版本基本能用起来,但经常报错,可能是查不到所列的单 ...

    3 C0 H( a. G9 V, X现在是找不到的单词,在html或pdf中显示 warning 信息。( E; R8 _( P9 W
    考虑统一放在最后,单独一组invalid words。
    / Y+ J' }5 y7 b1 W3 |. G7 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的每日心情
    慵懒
    5 小时前
  • 签到天数: 2415 天

    [LV.Master]伴坛终老

    发表于 2020-3-9 03:20:40 | 显示全部楼层
           谢谢楼主的辛勤劳动与奉献分享,小工具挺实用。
    5 y2 h1 R0 o2 t: }, D' [  J( h0 L& J  {. ~8 l

    该用户从未签到

    发表于 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的每日心情
    开心
    2026-5-3 09:50
  • 签到天数: 983 天

    [LV.10]以坛为家III

    发表于 2020-3-22 16:34:57 | 显示全部楼层
    楼主太给力了 赞赞赞
    # Z- y7 J7 ~; C. j6 N" ]
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2026-6-27 16:05 , Processed in 0.026067 second(s), 27 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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