Mechanize を使用して、ページからいくつかのタグをスケープしようとしています。以前は Nokogiri を使用してそれらをスクレイピングすることに成功しましたが、現在はそれらをより広い Mechanize クラスに結合しようとしています。ノコギリの声明は次のとおりです。
page = Nokogiri::HTML(open(@model.url, "User-Agent" => request.env['HTTP_USER_AGENT']))
@model.icons = page.css("link[rel='apple-touch-icon']").to_s
そして、これがMechanizeと同等だと思ったものですが、機能していません:
agent = Mechanize.new
page = agent.get(@model.url, "User-Agent" => request.env['HTTP_USER_AGENT'])
@model.icons = page.search("link[rel='apple-touch-icon']").to_s
1 つ目は期待どおりにリンク タグを返します<link rel="apple-touch-icon" etc etc..></link>
。2 番目のステートメントは、空白の文字列を返します。端をto_s
外すと、非常に長い出力が得られます。エラーか、実際の Mechanize オブジェクトか何かだと思います。
文字列に変換しない場合の長い出力へのリンク: https://gist.github.com/eadam/5583541