网易公开课例有许多翻译的公开课内容,可是我家里使用有线通,看在线总是卡卡的,于是就想着将公开课下载到本地。网易提供了下载,不过一个课程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 falseWebSpec.silent_mode truespec = WebSpec.new.iespec.open classurlspec.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"))endendputs "finished"spec.closeAll()

2.获取每堂课的介绍文字

classurl="http://download.v.163.com/dl/open/00DL0QDR0QDS0QeB.html"WebSpec.debug falseWebSpec.silent_mode truespec = WebSpec.new.iespec.open classurlspec.pause(1000)File.open("health_library.txt","w") do |f|classnametag=spec.jquery("#h1title")classname=classnametag.innerTextif classname=~/《(.+?)》/classname=$1endf.puts ("Course Name: "+classname)tag=spec.jquery("#download .k1")0.upto(tag.all.length-1) do |i|f.puts(tag.at(i).innerText)endendputs "finished"spec.closeAll()

Watij,配合JRuby截取网易公开课下载列表相关推荐

  1. Watij,配合JRuby 截取网易公开课下载列表

    网易公开课例有许多翻译的公开课内容,可是我家里使用有线通,看在线总是卡卡的,于是就想着将公开课下载到本地.网易提供了下载,不过一个课程20多集课,一个一个手动,太麻烦,就想使用jruby是不是可以将某 ...

  2. 抓取网易公开课并下载

    原文地址:http://bbs.csdn.net/topics/390361293 View Code 1 # -*- coding: utf-8 -*- 2 #抓取网易公开课下载链接 3 #By : ...

  3. 【Chrome】扩展——下载网易公开课

    为什么80%的码农都做不了架构师?>>>    目的 网易公开课虽然提供了下载链接,但是下载之后的文件名并不正确,需要下载后手动修改文件名,非常不方便.所以本扩展的目标就是在下载的时 ...

  4. 网易公开课python爬取_用python打造网易公开课视频下载软件

    1 #coding:utf-8 2 import urllib 3 from bs4 import BeautifulSoup 4 import chardet 5 import os 6 impor ...

  5. 如何做到像百度云或者网易公开课一样动态更换APP启动图

    http://www.code4app.com/forum.php?mod=viewthread&tid=7632&extra=page%3D2%26filter%3Dsortid%2 ...

  6. Auto.js Pro安卓免ROOT引流脚本开发系列教程27网易公开课(5)-UI界面构建

    课程内容 脚本前端UI界面的构建 创建话术输入框(随机话术) 创建勾选框(性别选择.话术前加入昵称.话术后添加随机符号表情) 开发文档 在线文档 APP名称 网易公开课 APP版本 安卓客户端:v6. ...

  7. Auto.js Pro安卓免ROOT引流脚本开发系列教程23网易公开课(1)-前言

    APP名称 网易公开课 APP版本 安卓客户端:v6.8.1 APP简介 网易公开课提供来自世界一流名校和著名机构的上万集精品视频课程,涵盖各类热门领域,与Web版保持同步更新.速度流畅,画面高清.支 ...

  8. Auto.js Pro安卓免ROOT引流脚本开发系列教程26网易公开课(4)-关注用户

    APP_关注用户() 返回值类型 说明 布尔型 true,关注成功 false,关注失败 等待个人资料页出现(判断是否在个人资料页) 判断关注按钮节点是否存在 判断是否已关注 关注成功后随机延时 开发 ...

  9. Auto.js Pro安卓免ROOT引流脚本开发系列教程25网易公开课(3)-取用户性别

    APP_取用户性别() 返回值类型 说明 整数型 返回值 性别 0 女 1 男 2 无 等待个人资料页出现(判断是否在个人资料页) 判断性别节点是否存在 在性别节点范围内取色 根据色值判断性别 开发文 ...

最新文章

  1. Visual Studio 2010 Express for Windows Phone Key!
  2. android 技能标签功能_android开发工程师必备技能
  3. bean创建异常_快速提示:消息驱动Bean中的异常处理
  4. 金蝶kis云,调用增删改查注意点
  5. 7.QT-Qt对象间的父子关系
  6. 怎样提高自己的Java编程能力?
  7. CSDN《老友记》简记
  8. 什么是人工智能?(科普)
  9. sop封装与dip封装的语音芯片有何区别?
  10. python程序设计基础董付国 pdf-董付国《Python程序设计基础 第2版》PDF
  11. 英文地址翻译原则:先小后大。如**号**路**区,
  12. Hadoop回顾:(一)Hadoop生态系统简介
  13. UVALive 7456 Least Crucial Node (并查集)
  14. (转载)程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦
  15. ios开发之MPNowPlayingInfoCenter 锁屏显示正在播放的音乐
  16. 深圳第一职业技术学校计算机分数线,2018年深圳第一职业技术学校第一批中招录取分数线:382分...
  17. AI WORLD2016世界人工智能大会:中国力量崛起
  18. 一个使用 selenium 模块爬取(Twitter、New York Times)网站的可配置爬虫代码
  19. 互联网产品的定义及分类
  20. Filenet P8阶段性总结

热门文章

  1. ABT 节点 1.1.16 版更新日志 | ArcBlock 动态
  2. 无法打开文件opencv_world341d.lib
  3. 群晖DS918+ DSM7.0.1 安装网卡驱动
  4. topik怎么读_大神教你TOPIK阅读提速技巧!
  5. 计算机专业,专升本的在校日常
  6. C#——Directory类
  7. chkrootkit
  8. cosin等于多少,请问sin29.5度等于多少?
  9. A-Fast-RCNN: Hard Positive Generation via Adversary for Object Detection 笔记
  10. TWS当前发展和趋势浅析