没有什么能够阻挡我对学习的向往:建立自己的Anki单词卡片库
Anki是什么?
Anki是一个记忆软件,它可以帮你建立自己的学习库,辅助学习和记忆,让学习更加快速和开心。它怎么用?各位可以参考下边的资料。
Anki现在有PC/Mac/Linux版本(免费),Android版本(免费),IOS版本(¥160),大家可以根据自己的需求下载使用。今天我们要说的是,怎么样使用Anki建立自己的英语单词学习库。
我们想要的Anki卡片
比如下边的内容,我想把它变成可以使用的卡片
新概念英语 第一册 共793词
--------------------------------------------------------------------------------
序号 英语 词性 汉语
asffada
1 excuse n. 借口,理由;低劣的样品; v. 原谅
2 me pron. 我(宾格)
3 yes a. 是的; ad. 是,是的; v. 是
4 is v. 是
5 this a. pron. 这,这个
6 your pron. 你的,你们的
7 handbag n. 手提包
8 pardon n. 原谅,赦免; v. 宽恕,原谅
9 it pron. 它
10 thank you 谢谢你。
11 very much 非常地
12 pencil n. 铅笔; v. 用铅笔写
经过我们的处理,这样看似杂乱的单词就变成了一张张的学习卡片
这个卡片带图片,真人发音。看起来不错啊,心痒痒?让我们开始这段感情吧(划掉)
Windows 下使用
安装Chrome
使用搜索引擎可以找到,因为狗歌被墙,推荐翻不了的同学去新浪下。
Python
去官网 下载widows 版本的python 3.6,windows 如下勾选:
注意一定要勾选Add Python 3.6 to PATH,不然的话下边的操作会出错。
安装完成以后,按windows 开始按键,在搜索栏里输入cmd(或powershell),运行后,在弹出的命令行界面里输入
pip install splinter urllib3
等待安装完成,Python就准备好了
下载Chromedriver
ChromeDriver 因为众所周知的原因,无法从官网下载,国内最方便的是淘宝的镜像:
Windows 下载chromedriver_win32.zip ,把 文件放到python在的目录里
然后在cmd 里输入chromedriver 应该有如下输出:
Starting ChromeDriver 2.29.461591 (62ebf098771772160f391d75e589dc567915b233) on port 9515
Only local connections are allowed.
如果输出是
'chromedriver' 不是内部或外部命令,也不是可运行的程序或批处理文件。
则说明你的chromedriver放错了路径
语音文件
142000个英语单词语音库,把下边的链接使用下载工具(迅雷,QQ旋风)下载后解压到任意目录
ed2k://|file|%5B142000%E4%B8%AA%E5%8D%95%E8%AF%8D%E8%AF%AD%E9%9F%B3%E5%BA%93%5D.voice.rar|626969546|C46A52B3C3B4547362C517A2DD900D83|h=JHHGU6I5WULQFESTUBJE4CSNEENVRRNU|/
ed2k://|file|%5B142000%E4%B8%AA%E5%8D%95%E8%AF%8D%E8%AF%AD%E9%9F%B3%E5%BA%93%5D.voice.iso|391057408|9c917c36c920d4cb427dd72e1be72c90|h=MXKMCTCXQW7XOYOCE2YQ5QJCQRB6LFKI|/
开始抓取
拿到抓取脚本点击:
然后在页面的raw上右键
链接另存为,把脚本保存下来,记下路径。脚本能够处理的输入单词格式参考下边:
word #ok word
1 word #ok word
单词 word #ok word
单词 word n. thank you #ok word, n. and following rejected
单词 word CET4 #ok word, CET4 rejected
单词 thank you , word #NOT ok, phrase "thank you" accepted "," and following rejected
单词 word CET #NOT ok, phrase "word CET" accepted
CET 单词 word #NOT ok, CET accepted, all following rejected
就是说,如果你是单独的单词,只要它在一行的第一个英语单词出现处,后边有空格,然后跟什么垃圾数据都没关系。如果是短语,整体要求和单词一样,短语内用空格分隔。你把需要查的单词保存在文件里就可以了。
使用脚本抓取
按windows 开始按键,在搜索栏里输入cmd(或powershell),运行后,在弹出的命令行界面里输入
cd /d Pathtoyour bing2anki
type words.txt |python bing2anki.py PathtoVoice
其中Pathtoyour bing2anki是你下载的脚本文件所在的目录,words.txt 是你的需要查询的英语单词列表, PathtoVoice 是你语音文件所在的目录,怎么查看文件究竟在哪里啊?看下图,在文件名上点右键,属性,找到位置,把它选中复制下来,在命令行里右键粘贴就行了
现在开始,你可以去泡杯茶,看下张大妈有没有新的优惠信息,因为抓取需要一定的时间,原因是webdriver开启天量的短链接,如果不限制抓取速度,会有可能耗尽操作系统端口(操作系统:我能怎么办,我也很绝望啊),故限制抓取速度为一个单词5秒左右,完成以后脚本会自动退出。
脚本做了什么
这个脚本是我自己写的,基本原理就是把你需要查找的单词,发送给微软Bing,然后获取它的解释,并获得它的图片,再根据本地的语音文件生成anki可以识别的模板格式,然后再导入到模板里。
这个脚本可以自动化你每一个查词的动作,用不着自己再一个个输入到词典里,几千单词卡片只需要一个小时就能制作完成。运行时,脚本会操作chrome 自动查询和获得结果,如图:
看着像是人工输入,其实是脚本在操作。这样一来你都不知道坐在对面屏幕的是一条狗还是个脚本。
导入卡片到Anki
安装anki并导入模板
从官网下载以后安装,然后进入 anki。
下载下边的模板
单词卡片模板__1 Recite.apkg
双击导入到anki里
导入你的词库
使用anki的菜单:文件->导入,选中anki_bing.txt,点击打开
然后在导入选项里选择:
类型:单词
记忆库:按你的要求选
点击 区域分隔由间隔:,在弹出的框里输入 |
点确定以后,选中“允许在字段中使用HTML”
媒体文件
虽然导入完成了,但是我们的媒体文件需要存放到anki目录里,不然的话anki是显示不了图片和声音的,在windows(地址栏中输入)%AppData% ,找到anki2文件夹,找到你的用户(默认:用户1)目录下有一个 collection.media目录,刚才脚本生成的anki_media目录下有很多发音文件和图片,把它们全部复制过来就大功告成了。
分享到anki share deck
到ankiweb注册用户以后
在anki里点右上角那个圆圈登录,登录以后,可以再点一次同步你的资料到anki web ,然后到anki web 网站上,你就可以看到自己的资料,点share my deck 就可以很轻松的共享到anki
Mac/Linux用户
Chrome
推荐去新浪下载
Python3
Mac下没有实验,从官网下载默认安装应该问题不大
Linux 下打开终端使用(???用Linux 的同学应该知道怎么处理)
sudo apt-get install python3
依赖库:
Mac 下按下Ctrl + Space 调出spotlight(或点击Finder右上角调出),在输入框里输Terminal,运行终端,在终端里输入:
sudo pip3 install splinter urllib3
Linux 命令同上
Chromedriver
从taobao的 Mirror下载chromeDriver 包
解压以后放在你能找到的目录下或家目录下,然后进入终端,输入:
chmod +w ~/.bash_profile
vi ~/.bash_profile
进入vi以后按i键进入编辑模式,把光标移到最后(使用上下左右键移动)
添加两行:
PATH=$PATH:/path/to/your/chromedriver
export PATH
按esc ,然后输入:wq 回车以后退出vi
Linux 下操作类似,只是修改的文件要换成~/.bashrc
修改文件以后,重新进入terminal,输入chromedriver 未报错就可以认为成功了。
抓取
打开终端,输入
cat words.txt | python3 bing2anki.py /path/to/voice
words.txt 是你需要生成卡片的单词列表,/path/to/voice是你解压的voice文件夹目录
如果你的words.txt是gbk的,则有可能出现以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 0: invalid continuation byte
把命令改成
cat words.txt | iconv -c -f gbk -t utf-8 |python3 bing2anki.py /path/to/voice
媒体文件
Mac Anki2目录(Command+shift+G然后输入)
~/Library/Application Support/Anki2/
然后找到:你的用户/collection.media 目录,把媒体文件复制过来
Linux Anki
~/.local/share/Anki2
广告时间
我制作了一些卡片,分享在Anki 上,大家如果需要可以下载:
最后祝大家的单词背得SixSixSix.

skate-mfg
校验提示文案
xuanjiangsara
校验提示文案
白跑跑
校验提示文案
吊打回甲
校验提示文案
独裁爵爷
校验提示文案
夏天的狼
校验提示文案
天真无鞋了
校验提示文案
daystar
校验提示文案
值友7286577387
校验提示文案
颓废的小村姑
校验提示文案
不自觉的小灰灰
校验提示文案
lxw8758
校验提示文案
散步的西红柿
校验提示文案
啥捏
校验提示文案
西西5102
校验提示文案
Rainey117
校验提示文案
小花痴爱大花痴
校验提示文案
值友6014806229
校验提示文案
品质
校验提示文案
值友3574092243
校验提示文案
败家大叔
校验提示文案
FFwhy
校验提示文案
microbead
D:\>[18680:17388:1120/161045.420:ERROR:gl_surface_egl.cc(863)] eglInitialize D3D
11 failed with error EGL_NOT_INITIALIZED, trying next display type
校验提示文案
microbead
D:\>[18680:17388:1120/161045.420:ERROR:gl_surface_egl.cc(863)] eglInitialize D3D
11 failed with error EGL_NOT_INITIALIZED, trying next display type
校验提示文案
白饰过文
校验提示文案
值友2455048892
校验提示文案
值友3574092243
校验提示文案
品质
校验提示文案
kyoman
校验提示文案
Melinda_2013
校验提示文案
值友6014806229
校验提示文案
小花痴爱大花痴
校验提示文案
skate-mfg
校验提示文案
柳芽轻动
校验提示文案
七杀
校验提示文案
yjhppp
校验提示文案
Rainey117
校验提示文案
hi时光
校验提示文案
nickyleu
校验提示文案
西西5102
校验提示文案