Skip to content

Instantly share code, notes, and snippets.

@moro
Created September 8, 2011 08:44
Show Gist options
  • Save moro/1202952 to your computer and use it in GitHub Desktop.
Save moro/1202952 to your computer and use it in GitHub Desktop.
Nokogiri+grep
#!/usr/bin/env ruby
require 'nokogiri'
require 'optparse'
$optval = {}
opt = OptionParser.new
opt.on('-a', '--attr=ATTR', 'display attribute value') {|v| $optval[:attr] = v }
opt.on('-i', '--inspect', 'output #inspect instead of #to_s') { $optval[:inspect] = true }
opt.parse!(ARGV)
pattern, path, = ARGV
Nokogiri::HTML(path ? File.open(path) : $stdin).css(pattern).each do |elem|
if attr = $optval[:attr]
elem = elem.attribute(attr)
end
puts $optval[:inspect] ? elem.inspect : elemn.content
end
@moro
Copy link
Author

moro commented Sep 8, 2011

出力はこんな感じ(日本から)

$ curl -s http://twitter.com | ruby ~/opt/bin/nokogrep -a content 'meta[name=description]'
あなたにとって最も大切なことと瞬時につなぐ。友だち、専門家、好きな芸能人や最新ニュースをフォローしよう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment