网易公开课例有许多翻译的公开课内容,可是我家里使用有线通,看在线总是卡卡的,于是就想着将公开课下载到本地。网易提供了下载,不过一个课程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 WEB 2.0
jruby-complete-1.7.19.jar,java版本的ruby解析器
jruby与java使用开发,听说jruby能是swing的调用变为更简单
jruby是一个ruby的解析器,可将ruby解析为java文件,jruby作为ruby解析器时刻调用java代码
jruby安装包 和 jruby的lib库 JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。Rails彻底加快及简化了Web应用的开发,不过它让...
Ruby 、 Rails 、JRuby 都是令人兴奋的技术
jruby-1.3.1.jar包 解决org.jruby.exceptions.JumpException 等报错
jruby-src-1.0.zip
本文介绍了JRuby的安装与配置。JRuby的安装需要JRuby以及JDK,本文使用的版本分别是JRuby 1.1.2以及Java 1.6。至于JRuby配置,文章主要介绍了测试JRuby安装的方法。
org.jruby.rar
This book introduces you to three JRuby deployment strategies that give you the performance and scalability you need, while you use a language designed for rapid development. Explore common ...
jruby-bin-1.3.1.zip 用于jruby语言研发的必要工具
JRuby window X64 开发软件
jruby-dist-9.1.15.0-bin.tar.gz JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库 全面集成。 截至2017.12.08最新稳定版 JRuby 官方更新...
JRuby语言实战技术,java下运用ruby
jruby 1.9.6 win64
JRuby在Java测试中的应用,使用脚本语言,高效快进行Java程序测试。
jruby-1.5.5+OperaWatir+RSpec
对于Jruby、Jython和Groovy三种动态语言,长期以来很多人犹豫于如何选择它们。本文提出一个非常有力的例证证明:如果你是一个基于Java虚拟机的开发者,那么请放弃Jruby和Jython。
Now you can bring the best of Ruby into the world of Java, with Using JRuby. Come to the source for the JRuby core team’s insights and insider tips. You’ll learn how to call Java objects seamlessly ...