duangsuse::Echo
... 说实话,看看公开课的 timeline tags 我觉得里面的内容 《算法图解》 这本如此简单的书里几乎都覆盖了... 这就是大学生们的课程...
#cs #algorithm #algor #share #scarper
还是有问题... 算了,上静态下载好的
(Nokogiri 貌似的一个 bug ? 导致使用本地文件时编码指定参数无效)
[DuangSUSE@duangsuse]~% nokogiri -EGBK https://open.163.com/movie/2010/12/7/S/M6UTT5U0I_M6V2TTJ7S.html
Your document is stored in @doc...
... 人家是动态 JS 生成的,好吧... 不对啊,Nokogiri 有问题...还是有问题... 算了,上静态下载好的
kate ~/下载/scarper/麻省理工学院公开课:算法导论_跳跃表_网易公开课.html
(这里有 encconv 工具可以转换编码,但是上次使用导致了不知缘由的死机,现用 Kate 转换到 UTF-8)(Nokogiri 貌似的一个 bug ? 导致使用本地文件时编码指定参数无效)
nokogiri 下载/scarper/麻省理工学院公开课:算法导论_跳跃表_网易公开课.html
list = @doc.at_xpath("/html/body/div[6]/div/div[3]/div")
videos = list.children[1..45]
lessons = videos.find_all { |it| it.is_a? Nokogiri::XML::Element }
class Lesson
def initialize(element)
@label = parseLabel(element)
@name = parseName(element)
@desc = parseDesc(element)
end
def self.parseLine(tag, second)
tag.children.find { |it| it.name == 'p' }.children.find { |it| it.name == second }.children.first
end
def parseLabel(tag)
self.class.parseLine(tag, 'span')
end
def parseName(tag)
self.class.parseLine(tag, 'a')
end
def parseDesc(tag)
tag.children.find_all { |it| it.name == 'p' }.last.children.first
end
def to_s
"#{@label} #{@name}\n\t#{@desc}"
end
attr_accessor :name, :label, :desc
end