2010-06-01から1ヶ月間の記事一覧

mechanize:Mechanize#open_timeout, #read_timeout

>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb741686c ... >> agent.open_timeout => nil >> agent.read_timeout => nil 何に使っているかは不明。タイムアウトまわりなんだろうけど ドキュメント的にプロパティを明示する記法ってあるんだっけ?</mechanize:0xb741686c>

mechanize:Mechanize#cookie_jar

>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb74cf434 ... >> agent.cookie_jar => #<Mechanize::CookieJar:0xb74cf40c @jar={}> >> agent.get("http://www.google.com/") => #<Mechanize::Page ... >> agent.cookie_jar => #<Mechanize::CookieJar:0xb74cf40c @jar={"google.com"=>{ ...</mechanize::cookiejar:0xb74cf40c></mechanize::page></mechanize::cookiejar:0xb74cf40c></mechanize:0xb74cf434>

mechanize:Mechanize::AGENT_ALIASES

>> require 'mechanize' => true >> Mechanize::AGENT_ALIASES => {"Mechanize"=>"WWW-Mechanize/1.0.0 (http://rubyforge.org/projects/mechanize/)", "Linux Firefox"=>"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.…

mechanize:Mechanize::VERSION

>> require 'mechanize' => true >> Mechanize::VERSION => "1.0.0"

mechanize:Mechanize:Example

まんま require 'mechanize' require 'logger' agent = Mechanize.new { |a| a.log = Logger.new("mech.log") } #agent.user_agent_alias = 'Mac Safari' page = agent.get("http://www.google.com/") search_form = page.form_with(:name => "f") search_fo…

mechanize:GUIDE:Scraping Data

>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb74b3888 ... >> page = agent.get('http://google.com/') => #<Mechanize::Page {url #<URI::HTTP:0xb74a344c URL:http://www.google.co.jp/>} ... >> agent.page.search("p") => [#<Nokogiri::XML::Element:0x..fdba32e46 ... >> agent.page.s…</nokogiri::xml::element:0x..fdba32e46></mechanize::page></mechanize:0xb74b3888>

mechanize:GUIDE:Advanced Form Techniques

以下のような HTML と <html> <head> <title>form test</title> </head> <body> <form method="post" action="cgi/test_form00.cgi" name="form1"> <p> 氏名:<input type="text" name="text1" /> 性別: </p></form></body></html>

mechanize:GUIDE:Filling Out Forms

まんま require 'mechanize' agent = Mechanize.new page = agent.get('http://google.com/') google_form = page.form('f') google_form.q = 'ruby mechanize' page = agent.submit(google_form) pp page で、 #

mechanize:GUIDE:Finding Links

まんま >> require "mechanize" => true >> agent = Mechanize.new => #<Mechanize:0xb748b928 ... > >> page = agent.get('http://google.com/') => #<Mechanize::Page ... >> page.links.each do |link| ?> puts link.text >> end 画像 動画 地図 ニュース 書籍 Gmail その他 ... iGoogle 設定 ログイン 検索</mechanize::page></mechanize:0xb748b928>…

mechanize:GUIDE:Let's Fetch a Page!

まんま >> require "mechanize" => true >> agent = Mechanize.new => #<Mechanize:0xb748b928 ... > >> page = agent.get('http://google.com/') => #</mechanize:0xb748b928>

hpricot:Hpricot::Builder#xhtml_transitional

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.xhtml_transitional /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/tag.rb:181: [BUG] Segmentation fault ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-li</hpricot::doc>…

hpricot:Hpricot::Builder#xhtml_strict

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.xhtml_strict {} /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/tag.rb:181: [BUG] Segmentation fault ruby 1.8.7 (2010-01-10 patchlevel 249) [i686-linux]</hpricot::doc>

hpricot:Hpricot::Builder#text!

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.text!("p") => "p" >> doc => #<Hpricot::Doc "p"> >> doc.text!("div") => "div" >> doc => #<Hpricot::Doc "p" "div"></hpricot::doc></hpricot::doc></hpricot::doc>

hpricot:Hpricot::Builder#text, <<, concat

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.text("p") => nil >> doc => #<Hpricot::Doc "p"> >> doc.text("div") => nil >> doc => #<Hpricot::Doc "p" "div"></hpricot::doc></hpricot::doc></hpricot::doc>

hpricot:Hpricot::Builder#tag!

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.tag!(:p) => {emptyelem <p>} >> doc.tag!(:div) => {emptyelem <div>} 引数分からず…</div></p></hpricot::doc>

hpricot:Hpricot::Builder#html_tag

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.html_tag(:div) => #<Hpricot::CssProxy:0xb7a13814> >> doc.html_tag(:p) => #<Hpricot::CssProxy:0xb7a12108> 引数分からず…</hpricot::cssproxy:0xb7a12108></hpricot::cssproxy:0xb7a13814></hpricot::doc>

hpricot:Hpricot::Builder#head

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.head('') ArgumentError: block not supplied from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpricot-0.8.2/lib/hpricot/builder.rb:159:in `instance_eval' from /usr/local/ruby-</hpricot::doc>…

hpricot:Hpricot::Builder#doctype

>> require "hpricot" => true >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.doctype('HTML', 'hoge') ArgumentError: wrong number of arguments (2 for 3) from (irb):3:in `doctype' from (irb):3 >> doc.doctype('HTML', 'hoge', '') /usr/local/ruby-1.8.7/lib</hpricot::doc>…

hpricot:Hpricot::Builder#build

>> require "hpricot" => true >> Hpricot('').build NoMethodError: undefined method `build' for #<Hpricot::Doc> from (irb):2 >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.build ArgumentError: block not supplied from /usr/local/ruby-1.8.7/lib/ruby/gems/1.8/gems/hpri</hpricot::doc></hpricot::doc>…

hpricot:Hpricot::Builder#add_child

>> require "hpricot" => true >> doc = Hpricot('') => #<Hpricot::Doc> >> doc.add_child(Hpricot::Elem.new("p")) NoMethodError: undefined method `add_child' for #<Hpricot::Doc> from (irb):3 >> doc = Hpricot('') {} => #<Hpricot::Doc> >> doc.add_child(Hpricot::Elem.new("p")) => {emptye</hpricot::doc></hpricot::doc></hpricot::doc>…

hpricot:Hpricot.xs

>> require "hpricot" => true >> require "hpricot/xchar" => true >> Hpricot.xs('a') => "a" >> Hpricot.xs('') => "" >> Hpricot.xs('&') => "&amp;"

hpricot:Hpricot.xchr

>> require "hpricot" => true >> require "hpricot/xchar" => true >> Hpricot.xchr('') => "*" >> Hpricot.xchr(0) => "*" >> Hpricot.xchr(1) => "*" >> Hpricot.xchr(200) => "&#200;" >> Hpricot.xchr(64) => "@" >> Hpricot.xchr('a') => "*" >> Hpric…

hpricot:Hpricot.uxs

>> require "hpricot" => true >> Hpricot.uxs('<p>foo</p>') => "<p>foo</p>" >> Hpricot.uxs('&amp') => "&amp" >> Hpricot.uxs('&amp;') => "&" >> Hpricot.uxs('&hoge;') => "?"

hpricot:Hpricot.parse

>> require "hpricot" => true >> Hpricot.parse('') => #<Hpricot::Doc> >> Hpricot.parse('<p>foo1</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>}>

hpricot:Hpricot.build

>> require "hpricot" => true >> Hpricot.build ArgumentError: block not supplied ... >> Hpricot.build {} => #<Hpricot::Doc> >> Hpricot.build(Hpricot('')) {} => #<Hpricot::Doc> >> Hpricot.build(Hpricot(''), 'p' => '') {} => #<Hpricot::Doc> >> Hpricot.build(Hpricot(''), 'p' => 'foo')</hpricot::doc></hpricot::doc></hpricot::doc>…

hpricot:Hpricot.XML

>> require "hpricot" => true >> doc = Hpricot('') => #<Hpricot::Doc {xmldecl "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"}> >> doc = Hpricot('') => #</hpricot::doc>

hpricot:Hpricot::Container::Trav#siblings_at

>> require "hpricot" => true >> doc = Hpricot('<p>foo1</p><p>foo2</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {elem <p> "foo2" </p>}> >> doc.at('p').siblings_at(0) => #<Hpricot::Elements[{elem <p> "foo1" </p>}]> >> doc.at('p').siblings_at(1) => #<Hpricot::Elements[{elem <p> "foo2" </p>}]> >> doc.…

hpricot:Hpricot::Container::Trav#replace_child

>> require "hpricot" => true >> doc = Hpricot('<p>foo1</p><p>foo2</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {elem <p> "foo2" </p>}> >> doc.replace_child(doc.at('p'), doc.search('p')[1]) => [{elem <p> "foo2" </p>}] >> doc => #<Hpricot::Doc {elem <p> "foo2" </p>} {elem <p> "foo2" </p>}>

hpricot:Hpricot::Container::Trav#previous_sibling

>> require "hpricot" => true >> doc = Hpricot('<p>foo1</p><p>foo2</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {elem <p> "foo2" </p>}> >> doc.search('p')[1].previous_sibling => {elem <p> "foo1" </p>} >> doc = Hpricot('<p>foo1</p><p>foo2</p><p>foo3</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {el…

hpricot:Hpricot::Container::Trav#preceding_siblings

>> require "hpricot" => true >> doc = Hpricot('<p>foo1</p><p>foo2</p>') => #<Hpricot::Doc {elem <p> "foo1" </p>} {elem <p> "foo2" </p>}> >> doc.at('p').preceding_siblings => #<Hpricot::Elements[]> >> doc.search('p')[1].preceding_siblings => #<Hpricot::Elements[{elem <p> "foo1" </p>}]> >> doc = Hpric…