新年快乐。
带来一个新春贺礼,一个小小的python程序。
自动化爬取 https://kotobank.jp/dictionary 这个网站的词典数据,有120本左右的词典,任选爬取。
大哥们,python真是牛逼,可以直接打包exe程序。在此上传,不用装任何依赖,直接点击运行。也放在了GitHub。
Github链接在此(程序文件在此):https://github.com/
下载文件之后,请务必解压运行!
做这个程序的目的更多是抛砖引玉,或者引导小白做自己的词典。我也是小白过来的嘛,现在也还是小白。
使用python的理由很简单,这是小白入门最快的语言,最友好的语言,没有之一。多种多样的模块十分齐全。即使从零开始学也非常快。
纯小白安装教程在下面。
运行截图,点击放大。
从零开始安装教程
嗯,其实我不知道应该从哪儿写起,没有任何看不起的意思,我确实不知道面前的你有多白。那我就从python说起吧。吹会牛逼。
这个小小程序是基于python运行环境的。python是一门编程语言,(哇我在想我要不要解释什么是编程语言),它长啥样你不必要知道。你要知道的只是,这门编程语言是最适合新手的,因为它卓越的扩展性、兼容性、“可组装性”,没有之一,它就是最适合新手的语言。效率和并发什么的你可能会说比不上C等语言,但是做点小项目,哪有那么大的压力?python里面的文字你可以当作英文语句来读。
现在继续讲GitHub,这是互联网上知名的(各种)代码托管网站,拥有文件版本管理,多人协同发展代码等功能。是码农交流知识和代码的地方。由于码农多为男性,GitHub又名Gayhub (误)。我将代码放在GitHub上,是希望大家一起来提高代码质量,提出意见,发表你自己的看法。
现在回到正题,所以说当你打开上面的GitHub链接后,你会看到一些文件。
最重要的就是
auto_spyder_kotobank.jp_word.py
这个文件
README.md文件是介绍代码用的。
下载代码请点击右上角的
好,现在我们开始本地环境的搭建。下面是我自己怎么搭建环境,不同人有不同办法,但是殊途同归。首先声明,我是windows10系统,其他windows系统操作方法一样,但是MAC OS我不熟悉,但是应该更简单。我是官网下载python,配合Visual studio Code使用。看不懂没关系,照着做就行,照着做你就懂了。
Step 1
到python官网下载python来安装。
官网地址
选择适合的版本下载安装。
Step 2
安装下载好的程序。注意跟随我勾选几个选项。原因:添加下系统变量,便于管理。箭头所指的地方,一定打勾。随后一路Next就好。顺便你留心一下安装路径是啥,随后有用。
Step 3
安装好之后,别着急打开,打开安装路径。这儿的文件应该长这样。
这个时候你的文件里没有python3.exe这个文件的!
我们现在要做两件事。第一件,复制一份python.exe的副本到此目录,然后将副本重命名为python3.exe,本体不动。
第二件事,打开Scripts目录。
复制一份pip.exe的副本到此目录,重命名为pip3.exe
Step 4
打开你的windows命令行。也就是按一下windows键,输入cmd。
或者按下Windows + R,输入cmd,点击回车。
好的,命令行窗口应该长这样。
我们来验证安装是否成功。
输入 python3 回车。应该返回这样。
如果是这样,就成功,输入 exit() 回车来退出。再来验证下一个。输入 pip3 -V 回车。
这样就是对的。
那么现在我们以管理员身份启动命令行安装一些东西。输入以下命令。
pip3 install request bs4 psutil colorama requests
Step 5
由于python原生的代码编辑界面不好看,我强烈推荐Visual studio code。
官方网站
下载下来安装就好。
打开Visual Studio Code,再打开我们的 auto_spyder_kotobank.jp_word.py 文件,按下F5,就可以运行了!
感谢你看到这儿, 这个程序自动爬取数据之后,会自动进行一堆数据处理,从而在目录下生成一个dictionary文件夹,在这个文件夹里有一个你选择词典的名字的文件夹,这里面,有一个 finaldata.txt 文件,这个就是最终的成品文件。然后,有一个data文件夹,这里面是储存图片用的(如果有的话)。
MDXbuilder地址:官方地址
(不得不说一下,官方不提供MDXbuilder3.x版本的下载了,但是3.x版本制作出来的mdx/mdd是兼容性最好的。所以推荐到这儿下载和使用MDXbuilder3.x版本)
(推荐)MDXbuilder3.x下载地址 :Github
Step 6
打开MDXbuilder,选择你txt文件所在的位置,看一眼data文件夹里面有没有图片,因为有的词典是没有图片的,有的话在MDXbuilder里面输入data文件夹所在的目录。输入你想要输出的mdx文件的文件名。点击start,你就会得到你自己的词典啦!
MDXbuilder的界面有五个地方需要修改,都是很简单的看名字就知道是什么意思的东西。
那么,这个词典还有一个空白css,欢迎你自己修改,会自动生成在 finaldata.txt 同级目录的。请更新下代码。
结尾感言:欢迎大家来为这个小小程序提意见,以及为这个项目contribute,不过我还得说一下,我们最好都坚持最小依赖原则,因为依赖越多,就越像程序员玩的东西了,门槛这个东西,能低就低,无论是学习还是资源,FreeMdict创立的初衷,不就是降低知识获取的门槛吗?(当然,我是说,能简则简),能只用python和txt的就用这俩,没有必要引进sqlite,redis这些东西,你要说性能的话,在这个小项目上你和我扯啥呢。
厉害了!膜拜!多谢!
在按F5那一步,出错了,说没有request啥的…大神可以留一个qq便于请教吗?
@fans 就在这儿讨论吧 看到我会回 网站最下面有QQ群链接
@hua 感谢大神回复!
今天更新您的代码之后出现了如下提示:expected an indented block (, line 397)
@fans 现在去重新下一下 有个地方空格打少了 不过文件已经做好了你看一下目录 有finaldata.txt 了已经
@hua 好滴,多谢老大!我试试!
@hua 老大,我测试了第一个英和词典和日本人名词典,都是在百分之75左右显示“Exception has occurred: requests.exceptions.ConnectionError
HTTPSConnectionPool(host=’kotobank.jp’, port=443): Read timed out.”
不知道该如何出来哈。小词典没有问题,直接可以生成final data文件。
@fans 这是爬取太快网站反爬导致的。如果你着急的话,把线程数调小,就是爬慢点,就不会出现这个问题。我随后会更新代码的代理反爬函数,等几天。
@hua 明白啦,感谢大神!
@hua 请问大神更新了代码了吗?小词库做的不过瘾?。期待更新。
@fans 等下吧
@hua 好滴。谢谢大神。
@hua 这个爬虫步骤和爬其他网站一样吗?
@hua 您推荐的是日文词典,我要学习爬英语词典。
@simon 自行上网学习
@hua 纯小白,您能推荐下吗?
@hua kotobak.jp_dictionary_auto_spider,很难下载,为什么不放在百度盘?
@hua 哪里可以找到编爬虫的资料?
@fans 不喜欢百度
@fans 因特网 万维网 互联网
Shorter Oxford English Dictionary
大辞海 原始JSON数据
Yomichan All Dictionaries
韦氏双解V3
【英语】《国家地理》–外刊