- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过这些链接后面的程序(主要是 Python)提取 Coursera 视频下载链接
https://www.coursera.org/learn/calculus1/lecture/IYGhT/why-is-calculus-going-to-be-so-much-fun
翻了很多这方面的文章,还是找不到通过程序提取视频下载链接的方法,谁能提供一个提取视频下载链接的分步解决方案?谢谢!
附言我知道this项目,但代码太复杂,所以我退出了。
最佳答案
我今天使用 python 为自己创建了一个 Coursera 下载器, selenium包裹,chromewebdriver .(答案的其余部分需要这 3 个工具)
首先你需要在coursera中找到你想要的类(class)并注册。之后你应该完成下面的代码并运行它。这需要一段时间,但结果(所有视频链接)将写入文本文件中:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# ########################### #
# ####-fill these vars-###### #
# ########################### #
# coursera login information:
username = "~" # e.g. : username = "john@doe.com"
password = "~" # e.g. : password = "12345asdfg"
# course details to download IMPORTANT: you should be enrolled in the course
path_course = "https://www.coursera.org/learn/programming-languages/home/week/1" # link to the course first week e.g. : path_course = "https://www.coursera.org/learn/game-theory-1/home/week/1"
num_of_weeks = 5 # number of course weeks(or desired weeks to download) e.g. : num_of_weeks = 5
path_to_save = "E:\\programming-languages-coursera-links.txt" # path to the file in wich the links will be saved e.g. : path_to_save = "E:\\interactive-python-links.txt"
#############################
#############################
#############################
print_each_link = False
# defining functions :
def get_links_of_week(week_add):
"""
this function gets the download links from the course.
:param week_add: address to the specific week in order to get links
:return: a list containing all download links regarding the specific week.
"""
driver.get(week_add)
print("going for" + week_add)
driver.implicitly_wait(5)
elems = driver.find_elements_by_xpath("//a[@href]")
links = []
for elem in elems:
sublink = elem.get_attribute("href")
# print(sublink)
if sublink.find("lecture") != -1 and sublink not in links:
links.append(sublink)
# print("---------------")
# print(links)
inner_links = []
for link in links:
driver.get(link)
driver.implicitly_wait(5)
inner_elems = driver.find_elements_by_xpath("//a[@href]")
for inelem in inner_elems:
sub_elem = inelem.get_attribute("href")
# print(sub_elem)
if sub_elem.find("mp4") != -1:
print("the link : " + sub_elem[37:77] + "... fetched")
inner_links.append(sub_elem)
return inner_links
def get_week_list():
"""
this function gets the URL address from predefined variables from the top
:return: a list containing each week main page.
"""
weeks = []
print('list of weeks are : ')
for x in range(1, num_of_weeks + 1):
weeks.append(path_course[:-1] + str(x))
print(path_course[:-1] + str(x))
return weeks
# loading chrome driver
driver = webdriver.Chrome("E:\\chromedriver.exe")
# login to Coursera
driver.get(path_course)
driver.implicitly_wait(10)
email = driver.find_element_by_name("email")
email.click()
email.send_keys(username)
pas = driver.find_element_by_name("password")
pas.click()
pas.send_keys(password)
driver.find_element_by_xpath("//*[@id=\"rendered-content\"]/div/div/div/div[3]/div/div/div/form/button").send_keys(
Keys.RETURN)
# fetching links from each week web page
weeks_link = get_week_list()
all_links = []
for week in weeks_link:
all_links += get_links_of_week(week)
driver.close()
# write to file
print("now writing to file ...")
text_file = open(path_to_save, "w")
for each_link in all_links:
if print_each_link:
print(each_link + "\n")
text_file.write(each_link)
text_file.write("\n")
text_file.close()
print("---------------------------------")
print("all Links are fetched successfully")
如果遇到任何问题,请在此处发表评论。
关于javascript - 通过程序获取 Coursera 视频下载链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31134191/
我对此很陌生,我在这里的论坛上检查过答案,但我没有找到任何真正可以帮助我的答案。我正在尝试播放 res/raw 文件夹中的视频。到目前为止我已经设置了这段代码: MediaPlayer mp; @Ov
我可以播放一个视频剪辑,检测视频的结尾,然后创建一个表单,然后播放另一个视频剪辑。我的问题是,表单 react 不正确,我创建了带有提交按钮和两个单选按钮可供选择的表单。我希望让用户进行选择,验证响应
首先,我必须说我在web2py讨论组中看到过类似的内容,但我不太理解。 我使用 web2py 设置了一个数据库驱动的网站,其中的条目只是 HTML 文本。其中大多数将包含 img和/或video指向相
我正在尝试在视频 View 中播放 YouTube 视频。 我将 xml 布局如下: 代码是这样的: setContentView(R.layout.webview); VideoV
我正在开发一个需要嵌入其中的 youtube 视频播放器的 android 应用程序。我成功地从 API 获得了 RTSP 视频 URL,但是当我试图在我的 android 视频 View 中加载这个
我目前正在从事一个使用 YouTube API 的网络项目。 我完全不熟悉 API。所以每一行代码都需要付出很多努力。 使用以下代码,我可以成功检索播放列表中的项目: https://www.goog
是否可以仅使用视频 ID 和 key 使用 API V3 删除 youtube 视频?我不断收到有关“必需参数:部分”丢失的错误消息。我用服务器和浏览器 api 键试了一下这是我的代码: // $yo
所以我一直坚持这个大约一个小时左右,我就是无法让它工作。到目前为止,我一直在尝试从字符串中提取整个链接,但现在我觉得只获取视频 ID 可能更容易。 RegEx 需要从以下链接样式中获取 ID/URL,
var app = angular.module('speakout', []).config( function($sceDelegateProvider) {
我正在努力从 RSS 提要中阅读音频、视频新闻。我如何确定该 rss 是用于新闻阅读器还是用于音频或视频? 这是视频源:http://feeds.cbsnews.com/CBSNewsVideo 这是
利用python反转图片/视频 准备:一张图片/一段视频 python库:pillow,moviepy 安装库 ?
我希望在用户双击视频区域时让我的视频全屏显示,而不仅仅是在他们单击控件中的小图标时。有没有办法添加事件或其他东西来控制用户点击视频时发生的情况? 谢谢! 最佳答案 按照 Musa 的建议,附
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
我有一个公司培训视频加载到本地服务器上。我正在使用 HTML5 的视频播放来观看这些视频。该服务器无法访问网络,但我已加载 apache 并且端口 8080 对同一网络上的所有机器开放。 这些文件位于
我想混合来自 video.mp4 的视频(时长 1 分钟)和来自 audio.mp3 的音频(10 分钟持续时间)到一个持续时间为 1 分钟的输出文件中。来自 audio.mp3 的音频应该是从 4
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我正在尝试使用 peer/getUserMedia 创建一个视频 session 网络应用程序。 目前,当我将唯一 ID 发送到视频 session 时,我能够听到/看到任何加入我的 session
考虑到一段时间内的观看次数,我正在评估一种针对半自动脚本的不同方法,该脚本将对视频元数据执行操作。 简而言之,只要视频达到指标中的某个阈值,就说观看次数,它将触发某些操作。 现在要执行此操作,我将不得
我正在通过iBooks创建专门为iPad创建动态ePub电子书的网站。 它需要支持youtube视频播放,所以当我知道视频的直接路径时,我正在使用html5 标记。 有没有一种使用html5 标签嵌入
我对Android不熟悉,我想浏览youtube.com并在Webview内从网站显示视频。当前,当我尝试执行此操作时,将出现设备的浏览器,并让我使用设备浏览器浏览该站点。如果Webview不具备这种
我是一名优秀的程序员,十分优秀!