「C言語入門」の PDF化
C言語入門
このページを Ruby でスクレイピングして PDF化する。
require 'mechanize' def tx_save(page, fname) n = page.index("<title>") page.insert(n, '<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">') open(fname,"w+") {|io| io.write(page)} end Dir.chdir('/home/***/man') #作業用フォルダ url = 'http://wisdom.sakura.ne.jp/programming/c/' agent = Mechanize.new agent.user_agent_alias = 'Linux Firefox' tx_save(agent.get(url).body, "001.html") agent.get(url).css('a')[1..65].each_with_index do |node, i| sleep(1) u = URI(url).merge(node.attribute('href').value).to_s tx_save(agent.get(u).body, "%03d" % (i + 2) + ".html") end 66.times do |i| st = "%03d" % (i + 1) `wkhtmltopdf #{st + ".html"} #{st + ".pdf"}` end `pdftk *.pdf cat output c.pdf`
「wkhtmltopdf」と「pdftk」が必要。Linux Mint 18 で確認済み。