查看: 1478|回复: 21
打印 上一主题 下一主题

[讨论] CALD Online 离线化(技术支持贴)

[复制链接]

该用户从未签到

46

主题

468

回帖

3743

积分

贡士

Rank: 6Rank: 6

积分
3743

灌水大神章小蜜蜂章笑傲江湖章

跳转到指定楼层
1
发表于 2016-2-27 21:08:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kyletruman 于 2018-4-17 07:19 编辑

相比 CALD4 的印刷版,在线版的内容还是有修正及更新的,就我自己对比过的 set 词条中就能看出来。比如做形容词的 set adjective (SAME) 这里,印刷版是 (FIXED)。另外,有些例句前面还加入了 UK 之类的地域标记。

这只是一个预热。旨在学习相关制作技术。离线化并非主要目的,而只能说是副产品。所以请不要抱有太高的期待,因为最终能不能做成好用的 MDX,自己暂时也没底:因为对于 SMART Thesaurus 这一块的跳转处理,还没有想好怎么在 MDX 上实现跟官网一样的效果,就是从 SMART Thesaurus 页面进入单词页面的话,那个 Thesaurus 会自动展开。这个料想跟 JavaScript 有关,而这一块,需要花费时间钻研学习一下,时间可能比较长吧。

希望借着抓网站的机会,练习一下多进程抓取以及学习一下 CSS 排版方面知识,也要把 JavaScript 方面的内容搞起来。

目前另存了一个 set 词条的 html。基本 CSS 框架及 JavaScript 都是官方的,通过参考《CSS 权威指南(第三版)》前 53 页的内容,总算知道了一些选择器的使用,结合这个 set.html,实现了一些效果,当然大部分颜色上的选取及特效都参考了别人的成果:









官方的 CSS 框架在屏幕宽度小于某个值时,会关闭右侧的跳转链接,手机上的效果没测试,大概跟第一个图类似吧可能。另外,这个官方的页面集成了三个内容:

Cambridge Advanced Learner’s Dictionary & Thesaurus
Cambridge Academic Content Dictionary
Cambridge Business English Dictionary

感兴趣的朋友大家可以一起研究,互相学习,兴许可以快速提高相关技术水平,顺便也把词典给做出来。

有想法的朋友请跟帖留言吧。

GoldenDict PC 下正常;
Mdict PC 单词典模式下跳转不正常,联合模式下可以跳转,除此之外一切正常;
Mdict Android 下单词典模式正常,多词典模式正常(经过测试,发现导致联合模式无法使用的原因是 Vocabulary.com Dictionary 词典的干扰,只要不和它一组,词典在移动设备上表现正常)


  1. /* 针对自己的移动设备,可以在这里修改相关数值 */

  2. @media (max-width: 330px) and (orientation: portrait), (max-width: 720px) and (orientation: portrait), (max-width: 1080px) and (orientation: portrait) {
  3.     .responsive_row [class*="responsive_cell"]:first-child, .responsive_cell_center {
  4.         margin-left: 0px !important;
  5.         width: 330px !important; /* 改这里,330 px 可以根据自己的情况调大或调小,经过对比,720p 屏幕用 330px 比较理想,1080p 用 360px 比较理想,2k、4k 可以自己测试 */
  6.     }
  7. }
复制代码










另外,吐槽一下 CALD 官网,HTML 里面的 JS 都跑飞了:



针对这个引发 Mdcit PC (IE 内核)报告语法错误的问题,可以在 pure 函数中添加:

  1. content = content.replace(''' onclick="onClick="ga('send','event', 'navigation', 'navigation-link' );""''', '')
复制代码


或者生成 MDX SRC 后,使用文本编辑器搜索替换删除如下内容:

  1. onclick="onClick="ga('send','event', 'navigation', 'navigation-link' );""
复制代码


单词粘连的问题,用 CSS 修正还是不太完美,需要改动这里:

  1. def remove_blank(content):
  2.     content = content.replace('\n', '')
  3.     content = re.sub(r'\t+', ' ', content)
  4.     content = re.sub(r'  +', ' ', content)
  5.     content = re.sub(r'>  +<', '> <', content)   # 两个以上空白替换为一个空白,之前的代码有误(一个以上空白替换为空),所以造成了粘连
  6.     content = re.sub(r'<!--.+?-->', '', content)
  7.     return content
复制代码


完美主义者,自行压制吧。

该用户从未签到

46

主题

468

回帖

3743

积分

贡士

Rank: 6Rank: 6

积分
3743

灌水大神章小蜜蜂章笑傲江湖章

来自 8楼
 楼主| 发表于 2016-3-3 00:37:27 | 只看该作者
67737 HTML files, 4.92 GB (5,284,878,529 字节):



原始 HTML 直接合并为 MDX SRC 大小居然快 4G 了,压制完竟然也有 500M 左右,CALD Online 冗余内容过多:



用 BeautifulSoup 扣数据,程序处理完一遍要花费近 2 个小时(全是因为要删除冗余内容),不过还是近 60 M,已经极限剔除无关内容了:



事实上,这个 CALD 包含 3部词典、1部语法书、1部简易同义词。平均一下,一部大概也要一二十兆吧。

音频是联网发音,Mdict PC 与 GoldenDict PC 都能正常发音。

GoldenDict PC 表现完好。



MDict PC 下 JS 代码会报错,不知道怎么处理。
手机下完全没法用,待修正。

有修改 JS,CSS 能力且愿意动手者,可以留言。



该用户从未签到

46

主题

468

回帖

3743

积分

贡士

Rank: 6Rank: 6

积分
3743

灌水大神章小蜜蜂章笑傲江湖章

来自 11楼
 楼主| 发表于 2016-3-3 12:16:49 | 只看该作者
重用官方 CSS,JavaScript 可以极大节约时间,快速使用,但兼容性不强;于我,词典制作难点在于完全抛弃官网样式及脚本,重写 CSS、JavaScript,以达到美观及兼容性,个人目前正在系统学习 CSS,尚未开始系统学习 JavaScript、JQuery,因而暂时无力修改 JS 代码,有能力者可以继续。

一站式抓取、生成 MDX SRC 脚本,供参阅:



需要的可以先自行压制,或者等我大致排错后上传,另外,代码修改后应该也可用于剑桥网站其它词典的抓取(不过工作量应该很大,需要重新分析相关页面,链接,构造正则查找替换规则,BeautifulSoup 模板及提取、替换规则):

CALD-Online-To-Local.zip (88.51 KB, 下载次数: 86)





该用户从未签到

3

主题

790

回帖

2720

积分

解元

Rank: 5Rank: 5

积分
2720

灌水大神章

推荐
发表于 2016-3-6 14:32:28 | 只看该作者
Hello my friend.Thanks for your efforts. if it's possible for you please make a more beautiful structure for  "Cambridge Essential English Dictionary"
https://www.pdawiki.com/forum/fo ... highlight=cambridge

thanks

点评

Sorry for that, because I only love advanced learner's english dictionaries and unabridged ones. Maybe someone else who needs CEED will beautify it sometime in the future.  发表于 2016-3-6 14:55
  • TA的每日心情
    慵懒
    2022-10-27 16:11
  • 签到天数: 326 天

    [LV.8]以坛为家I

    130

    主题

    3638

    回帖

    2万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    20089

    灌水大神章小蜜蜂章笑傲江湖章

    2
    发表于 2016-2-27 21:12:10 | 只看该作者
    效果棒棒哒!!前排支持!!

    该用户从未签到

    19

    主题

    363

    回帖

    2553

    积分

    解元

    Rank: 5Rank: 5

    积分
    2553

    灌水大神章小蜜蜂章笑傲江湖章

    3
    发表于 2016-2-27 21:21:51 | 只看该作者
    本帖最后由 fnaviwwo1 于 2016-2-27 21:37 编辑

    印刷版和光盘版有很多额外的注释,比如单词的搭配的注释,单词的辨析,常见错误的提醒这些,在线版都没有,感觉很可惜。

    感觉最近在线版的网页改版频繁,我每隔段时间上去查单词就感觉网页布局在变化。

    SMART Thesaurus在手机版上各种主题是排列成树状结构的,在线版好像只有单独的页面。

    该用户从未签到

    46

    主题

    468

    回帖

    3743

    积分

    贡士

    Rank: 6Rank: 6

    积分
    3743

    灌水大神章小蜜蜂章笑傲江湖章

    4
     楼主| 发表于 2016-2-27 21:33:10 | 只看该作者
    fnaviwwo1 发表于 2016-2-27 21:21
    印刷版和光盘版有很多额外的注释,比如单词的搭配的注释,单词的辨析,常见错误的提醒这些,在线版都没有, ...

    确实,在线版也没有包含图片。你说的 SMART Thesaurus 手机版应该是 iOS 上的 APP 吧?

    该用户从未签到

    131

    主题

    2650

    回帖

    3万

    积分

    翰林院编修

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34126

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    6
    发表于 2016-2-28 11:29:29 | 只看该作者
    很精致,拭目以待。
  • TA的每日心情
    开心
    2018-1-27 00:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    99

    主题

    1477

    回帖

    3万

    积分

    翰林院孔目

    Rank: 10Rank: 10Rank: 10

    积分
    35504

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    9
    发表于 2016-3-3 00:43:25 来自手机 | 只看该作者
    非常漂亮!又一力作!感谢大神!
  • TA的每日心情
    开心
    2018-9-6 05:06
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    10

    主题

    241

    回帖

    1752

    积分

    解元

    Rank: 5Rank: 5

    积分
    1752

    灌水大神章小蜜蜂章笑傲江湖章

    10
    发表于 2016-3-3 06:30:13 | 只看该作者
    非常期待。我也象楼主一样对其中一个单词下载其网页,并对相对应的CSS进行了一些分析,想按Bt百度的教程,学习学习抓取数据(他认为这个比较简单,可以根据下面的最靠近单词),但是热抄热卖的pathon用起来非常不顺,放弃了。
    关于词典,对于我们学习的人来说,非常希望能英汉对照。全英文的就算你搞懂了释义,但从汉语里找到最恰当的中文词语也非常困难,效率也不高。所以希望能有英汉对照的版本。
    楼主的Pathon功力深厚,我分析过前次抓取Merriam-Webster's Advanced Learner's English Dictionary的脚本,非常佩服。希望到时能把抓取程序分享以供学习

    点评

    代码可以参阅上传的附件。  发表于 2016-3-3 12:17
  • TA的每日心情
    奋斗
    昨天 09:58
  • 签到天数: 1625 天

    [LV.Master]伴坛终老

    73

    主题

    4466

    回帖

    6万

    积分

    翰林院孔目

    Rank: 10Rank: 10Rank: 10

    积分
    60593

    灌水大神章小蜜蜂章笑傲江湖章翰林院专用章管理组专用章

    12
    发表于 2016-3-3 13:21:56 | 只看该作者
    太棒了!!!谢谢LZ!!!
  • TA的每日心情
    奋斗
    2019-11-16 20:51
  • 签到天数: 178 天

    [LV.7]常住居民III

    7

    主题

    714

    回帖

    3887

    积分

    禁止发言

    积分
    3887

    灌水大神章笑傲江湖章QQ 章

    13
    发表于 2016-3-3 14:10:18 | 只看该作者
    十分感谢无私奉献!
  • TA的每日心情
    开心
    2018-9-6 05:06
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    10

    主题

    241

    回帖

    1752

    积分

    解元

    Rank: 5Rank: 5

    积分
    1752

    灌水大神章小蜜蜂章笑傲江湖章

    15
    发表于 2016-3-6 11:34:22 | 只看该作者
    记得前次楼主处理Merriam-Webster's Advanced Learner's English Dictionary词典时,有保留字的问题(单词"con"等)。这几天在意大利出差,试着下载了一下。下载的单词恰好没有CON开头的词。个人想法在保存文件时,可以在单词名称前加一个特殊字符如“$"做为文件名。

    点评

    好的。不过剑桥网站也没什么大型词典了,估计别的几个小型词典也不太可能出现 con 这个词了。  发表于 2016-3-6 14:57
  • TA的每日心情

    2019-11-30 13:43
  • 签到天数: 276 天

    [LV.8]以坛为家I

    3

    主题

    606

    回帖

    11万

    积分

    状元

    Rank: 9Rank: 9Rank: 9

    积分
    114044

    笑傲江湖章灌水大神章

    16
    发表于 2016-3-6 14:07:02 | 只看该作者
    gnowed 棒棒哒,先锋级的人物