网易公开课例有许多翻译的公开课内容,可是我家里使用有线通,看在线总是卡卡的,于是就想着将公开课下载到本地。网易提供了下载,不过一个课程20多集课,一个一个手动,太麻烦,就想使用jruby是不是可以将某节课批量将下载地址截取下面。
原本以为使用open_uri加上hpricot解析html就可以批量获取url,不过一分析下载页面,发现html的下载地址是通过js动态写入的,无法通过解析html获得,通过搜索找到了JRuby下的一款浏览器自动化测试工具Watij。
Watij的作用:
Watij作用和Ruby下大名鼎鼎的工具Watir一样,使用Java开发,包含一套JRuby的接口,非常好用。支持模拟IE、Firefox,通过它可以自动使用浏览器做很多事,获取下载地址简直是小事一桩。
Watij官网地址:http://watij.com/webspec-api/ 包含基本的使用接口和方法。
下载公开课的相关代码(代码属于“即用即抛”脚本,仅供参考):
1.获取公开课的下载地址列表:
classurl="http://download.v.163.com/dl/open/00DL0QDR0QDS0QeB.html"
WebSpec.debug false
WebSpec.silent_mode true
spec = WebSpec.new.ie
spec.open classurl
spec.pause(1000)
File.open("link.html","w") do |f|
tag=spec.jquery("#download ul li:first-child a")
0.upto(tag.all.length-1) do |i|
f.puts(tag.at(i).get("href"))
end
end
puts "finished"
spec.closeAll()
2.获取每堂课的介绍文字
classurl="http://download.v.163.com/dl/open/00DL0QDR0QDS0QeB.html"
WebSpec.debug false
WebSpec.silent_mode true
spec = WebSpec.new.ie
spec.open classurl
spec.pause(1000)
File.open("health_library.txt","w") do |f|
classnametag=spec.jquery("#h1title")
classname=classnametag.innerText
if classname=~/《(.+?)》/
classname=$1
end
f.puts ("Course Name: "+classname)
tag=spec.jquery("#download .k1")
0.upto(tag.all.length-1) do |i|
f.puts(tag.at(i).innerText)
end
end
puts "finished"
spec.closeAll()
OK,写完了,。
分享到:
相关推荐
《jRuby on Rails WEB2.0》:将Ruby on Rails融入Java平台的实践指南 《jRuby on Rails WEB2.0》是一部由Ola Bini撰写的书籍,深入探讨了如何将Ruby on Rails这一敏捷开源框架与Java平台相结合,以构建高效、灵活的...
使用 JRuby 1.7.8 需要先下载解压提供的 `jruby-1.7.8` 压缩包,然后配置环境变量。以下是简单的步骤: 1. 将解压后的 JRuby 目录添加到系统 PATH 环境变量中。 2. 运行 `jruby -v` 命令检查安装是否成功,如果显示...
1. **解压 JRuby**: 将下载的 JRuby 压缩包解压到你选择的任意目录。 2. **配置环境变量**: 设置 `JRUBY_HOME` 环境变量,指向解压后的 JRuby 目录。例如,如果 JRuby 解压到 `C:\jruby-1.1.2`,则添加 `JRUBY_HOME=...
jruby-complete-1.7.19.jar,java版本的ruby解析器
标题“jruby-src-1.0”指的是JRuby的一个特定版本——1.0的源代码。JRuby是一种实现Ruby编程语言的Java版本,它允许在Java平台上运行Ruby代码,同时也支持与Java应用程序进行无缝集成。这个压缩包“jruby-src-1.0....
标题 "org.jruby.rar" 暗示我们正在讨论一个与 JRuby 相关的压缩文件,其中可能包含了 JRuby 的源代码、库文件或者其他相关资源。JRuby 是一种 Java 实现的 Ruby 解释器,它允许 Ruby 代码在 JVM(Java 虚拟机)上...
JRuby是Java平台上的一个实现,它允许开发者在Java虚拟机(JVM)上运行Ruby编程语言。这个“jruby-bin-1.3.1.zip”压缩包是JRuby的一个早期版本,专为Ruby语言的研发提供必要的工具和环境。在这个版本中,重点是兼容...
jruby与java使用开发,听说jruby能是swing的调用变为更简单
**压缩包子文件的文件名称列表:**"jruby-0.9.0" 指示了在解压后,我们得到的是JRUBY的0.9.0版本的目录或文件结构,可能包含了 JRuby 运行时环境的各种组件,如解释器、库、文档和其他必要的工具。 **详细知识点:*...
### JRuby在Java测试中的应用 #### JRuby简介 JRuby是一种使Ruby语言能在Java平台上运行的实现方式。它不仅保留了Ruby语言简洁且强大的特性,还充分利用了Java平台的强大功能,如性能优化、垃圾回收机制等。由于...
1. **下载**:首先,你需要从官方网站下载“jruby_windows_1_6_4.exe”这个安装文件,确保文件来源安全可靠。 2. **运行安装**:双击exe文件,按照安装向导的提示进行操作。通常,选择默认设置即可满足大部分需求。...
jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...
标题 "jruby-core-1.7.12.zip" 提供的是 JRuby 的核心库版本 1.7.12,这是一个将 Java 虚拟机(JVM)与 Ruby 语言结合的开源实现。JRuby 允许开发者在 Java 平台上运行 Ruby 代码,同时利用 Java 生态系统的强大功能...
为了开始使用JRuby,你需要下载并安装JRuby,配置环境变量,然后可以像使用普通Ruby那样运行Ruby代码。开发过程中,你可以使用像`jirb`(JRuby交互式 shell)这样的工具,或者通过`bundle`管理Gem(Ruby的包管理系统...
文件列表中只提到 "jruby-1.5.5",可能是因为其余部分如 OperaWatir 和 RSpec 的库已经被包含在 JRuby 的环境中,或者它们是以其他文件形式存在,如 Gem 文件或其他配置文件。 对于开发者来说,了解如何将这些工具...
在IT行业中,尤其是在Java与Ruby混合开发的场景中,JRuby是一个重要的工具,它允许开发者在Java平台上运行Ruby代码。由于JRuby是基于JVM(Java Virtual Machine)的,因此可以利用Java生态中的各种工具来对其进行...
**JRuby+Swing:开发桌面应用的利器** JRuby 是一种在 Java 平台上实现的 Ruby 解释器,它允许开发人员通过 Java 虚拟机(JVM)执行 Ruby 代码。JRuby 的独特之处在于其能够无缝地集成 Java 库,包括 Java Swing,...
找不到或无法加载主类org.jruby.Main。 原因是/usr/local/hbase/lib 目录下没有jruby-complete-1.7.19.jar文件.,下载本文件,解压缩后将jar文件直接添加到/usr/local/hbase/lib 目录下。
jruby-1.3.1.jar包 解决org.jruby.exceptions.JumpException 等报错