duangsuse::Echo
584 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
duangsuse::Echo
... 说实话,看看公开课的 timeline tags 我觉得里面的内容 《算法图解》 这本如此简单的书里几乎都覆盖了... 这就是大学生们的课程...
#cs #algorithm #algor #share #scarper

[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