Tominysun

更新

目前我已经完成了最终版本。现将代码贴在下方:
https://www.koolearn.com/dict/*.html中任一页面执行,即可获取当前书中单词表,默认顺序为逆序。
自动生成txt格式文件,方便导入。

/*
 *Title: 新东方单词表导出
 *Description: F12(https://www.koolearn.com/dict/*.html)
 *Author: Tominysun
 *Created: 2022/10/14
 *Updated: 2023/04/01
 */
var words = "";
for (var i = 1; i <= $('.i-page a').length - 1; i++) {
    if (i === $('.i-page a').length - 1) {//最后一次生成txt并退出循环
        exportTxt($('.content-title').text() + ".txt", words);
        break;
    }
    var url = window.location.protocol + '//' + window.location.host + $('.i-page a:eq(' + i + ')').attr("href");
    $.ajax({
        type: "get",
        url: url,
        async: false, //同步访问
        success: function(data) {
            $(data).find('div.word-wrap a.word').each(function() {
                words = $(this).text() + "\n" + words
            });
        }
    });
    /*$.get(url,function(data,staytus){//默认异步访问,导致for循环以及单词顺序出现问题。
      //$(data).find('div.word-wrap a.word').each(function(){console.log($(this).text()););
      $(data).find('div.word-wrap a.word').each(function(){words = $(this).text()+"\n" + words});
    });*/

}

function exportTxt(fileName, data) {
    data = data.replace(/\n/g, "\r\n");
    if (navigator.userAgent.indexOf("Trident") >= 0) {
        try {
            // IE 10 或以上
            var fileObj = new Blob([data]);
            navigator.msSaveBlob(fileObj, fileName);
        } catch (ex) {
            // IE 9 或以下
            var winSave = window.open();
            winSave.document.open("text", "utf-8");
            winSave.document.write(data);
            winSave.document.execCommand("SaveAs", true, fileName);
            winSave.close();
        }
    } else {
        // Webkit
        var urlObject = window.URL || window.webkitURL || window;
        var export_blob = new Blob([data]);
        var save_link = document.createElement("a");
        save_link.href = urlObject.createObjectURL(export_blob);
        save_link.download = fileName;
        save_link.click();
    }
}

前言

我先前一直使用不背单词作为英语辅助学习的App. 但里面并没有配套的一些大学英语课本的词汇表. 不幸中的万幸是它提供了导入自定义词书的功能, 因此只要我能够获得txt, 就可以学习自定义词书了.

仅以此文简单记录我的获取方式.

曲折

找了许多的网站, 不是资源失效, 就是版本不符, 要不就是各大文库付费下载.
就算能获得的最终版本很可能也是doc或者pdf, 将其处理成需要的txt格式比较困难.
但我最终找到了非常完美的提供方->新东方...

代码

新东方提供了网页版本的分页词汇表. 由于格式非常简单, 我简单通过js处理下即可得到需要的txt格式.

var a = "";
$('div.word-wrap a.word').each(function(){a = $(this).text()+"\n" + a});
console.log(a);

资源

新标准大学英语综合教程2词汇表

后记

目前的代码非常简单, 只是简单将网页元素批量提取 + 排列, 还需要手动拼接, 由于新东方提供的词汇表是分页的, 计划后续改进成自动访问分页并最终生成完整词汇表导出.

添加新评论