首页
社区
课程
招聘
[原创]OALD8完美版制作教程
发表于: 2013-11-13 14:43 1515

[原创]OALD8完美版制作教程

2013-11-13 14:43
1515
OALD8指的是oxford advanced learners' dictionary 8th edition

好吧,我承认这个帖子不像是来讨论web安全的。

为何来发帖,为何发到这个版块,为何不给修改好的文件。

一种当年破解软件时留下来的遗风,小事自己动手,再加上太久没有来论坛了,所以过来看看。html代码兼容性最相关的也就只剩下这个版块了。这个原来学知识产权,现在是做律师的,让我就这么赤裸裸的传播文件,不合适啊,我就传授下犯罪方法吧。

大半天时间搞定。

先说说几个工具。getdict,mdxbuilder,ultraedit,python和一个叫做beautiful soup的库。

GetDict网上有,能够把mdx逆成txt,至于选项,我用了utf-8格式的txt,实际上后面一个mdx源文件也可以。没多大差别,至于mdx文件的格式,我觉得能够参看的就只有mdict作者写的程序mdxbuilder上比较全,反正随便弄点数据试验下就大概知道。

mdx逆成utf格式的文本文档后,跟mdxbuilder所要求的格式还有一定的差距,关于大文件编辑,反正UltraEdit没有崩溃,其他的很多都崩溃了。(可怜我开始不愿安装UE各种python小脚本文件分割,然后才能用notepad++打开)。我选了中间那个txt的字典数据,和mdict的数据差别,就是把\n换成</>,把tab换成换行。这个好几百兆的txt,UE执行也要一会儿。

mdxbuilder反正是必备的,也就不多提了。

还有就是一个原来的OALD8的mdict,感谢作者,感谢牛津……

最重要的一个问题,为何原来的OALD8不完美,说来说去么是浏览器核心的兼容性问题。

实际上我开始以为是标签嵌套不匹配的问题,从逆向好的txt里复制几行,改文件后缀为html,然后拖进ie和firefox里,发现两者的解析不一致。后来仔细看了下逆向后的txt文件中的html源码tag配对情况,发现其实根本没问题。

问题出在span标签的display block和span本来就是行内标签。这个跟所谓的标准是不容的,自诩很符合标准的webkit核心就跟他抵触了(好吧,我知道firefox不是webkit核心的……但我不用其他浏览器,没办法,只能将firefox当成异类了)。

解决方案很简单,用python写个小程序,把display:block的span全部替换成div标签就可以了。反正用beautiful soup就一两行的代码而已。

但貌似太夸张的写内存是不够用的,反正我是被提示了……所以我开始分割的文件就有用武之地了。还是要分割处理啊,我的机器内存4G,不知道8G的话需不需要分割处理。

在用mdxbuilder的时候,推荐将utf8格式不设BOM,可能会有各种意想不到的情况,比如说第一个单词查不到,字典显示变成txt的html等。

这个字典,只需要将txt转成mdx好了,资源文件(.mdd),原来的网上可以下载的还可以用的。

from bs4 import BeautifulSoup
import re
fw=open("d://new191.html",'w',-1,encoding="utf-8")#这个new191就是那个逆向后的txt文本文件
j=0
fr=[]
while j<=191:
        fn="D://dict//"+str(j)+".html"
        fr.insert(j,open(fn,'r',-1,encoding="utf-8"))#我无聊蛋疼的分了一百多个文件
        soup = BeautifulSoup(fr[j])
        j=j+1
        for spans in soup.find_all(style=re.compile("display:block")):#beautiful soup真是个好东西
            spans.name="div"
        fw.write(repr(soup))
fw.close()
j=0
while j<=191:
        fr[j].close()
        j=j+1
               
毕竟本人不是科班出身,这种傻傻的代码,也难见于大方之家,by the way,我的python是64bit的3.3

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//