mechanizeとは言わずとしれたRubyのスクレイピングツールである。
で、例えば以下のようにページ内のaタグからリンク先のURLを取得したいとする。
url = "https://stackoverflow.com/questions/34471102/python-nameerror-name-include-is-not-defined" agent =Mechanize.new agent.get url href = agent.page.at('a.question-hyperlink').attr('href') p href.to_s
が、実際にstack overflowのサイトを見るとわかるが、以下のようにURLではなくpathになってしまう。いわゆる相対パスってやつ
> "/questions/34471102/python-nameerror-name-include-is-not-defined"
絶対パスで取得する方法
http://〜から始まる形で欲しい場合は、以下のようにする
p (agent.page.uri.merge href).to_s > "https://stackoverflow.com/questions/34471102/python-nameerror-name-include-is-not-defined"
最後に.to_sしているのは、URI::HTTPSクラスになってしまうため。