您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
下载 Coursera 课程的中文字幕
// ==UserScript== // @name Coursera 中文字幕下载 // @description 下载 Coursera 课程的中文字幕 // @match https://class.coursera.org/* // @version 1.0 // @auther 新浪微博: @糖醋陈皮 // @namespace https://greasyfork.org/users/7118 // ==/UserScript== // 用了各种方法想让页面完全载入后再执行下面的代码, 但是都不行. // 最终还是setTimeout搞定了... setTimeout(function() { // setTimeour Start var matches = document.querySelectorAll("ul.course-item-list-section-list li.viewed , ul.course-item-list-section-list li.unviewed"); // 每一行都是一个<li>, 所以我们先获取到全部的<li> for (var i = 0, li; li = matches[i]; i++) { // for loop Start // --------------------------------------------------------------------------------------------- // // 拿到 ul -> li -> a 的 data-lecture-id 和 href 属性 // 拼接出字幕的url // // --------------------------------------------------------------------------------------------- var a = li.querySelector("a"); // 拿到每个 <li> 里的那个 <a> var id = a.getAttribute("data-lecture-id"); // 拿到 <a> 的 data-lecture-id 属性 var href = a.getAttribute("href"); // 拿到 <a> 的 href 属性 var processed_url = href.replace(/[\/][0-9]+/g, ''); // 举例: https://class.coursera.org/basicwriting-003/lecture/33 // 经过这一步之后会变成: https://class.coursera.org/basicwriting-003/lecture var zh_subtitle_url = processed_url + "/subtitles?q=" + id+ "_zh"; // 拼接出中文字幕地址. // https://class.coursera.org/basicwriting-003/lecture/subtitles?q=33_zh // --------------------------------------------------------------------------------------------- // // 现在字幕地址已经有了,下面只需要给右边加个下载按钮就好了。 // // --------------------------------------------------------------------------------------------- var rightside_div = li.querySelector("div.course-lecture-item-resource"); // 右边那些图标都是装在: <div class="course-lecture-item-resource"> ................. </div> 里, 所以我们先获取到它. var download_icon = document.createElement('a'); download_icon.setAttribute('href', zh_subtitle_url); download_icon.setAttribute('target', "_blank"); // 创建个<a>, 然后设置下 href 和 target 属性. var createAText = document.createTextNode("下载中文字幕"); download_icon.appendChild(createAText); // 给 <a> 创建个文本节点并添加上去. var the_a = li.querySelector("div.course-lecture-item-resource a"); var the_a_parent = the_a.parentNode; the_a_parent.insertBefore(download_icon, the_a); // 上面这段是为了把 <a> 添加到页面的右边. }// for loop End // setTimeout End }, 1000);