<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>freemem (江平)</title>
    <link>https://ruby-china.org/freemem</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Ruby 如何获取跳转后的 URL</title>
      <description>&lt;p&gt;除了下面这个方法，还有什么更简单的办法？（我不想为此小事而装一个 httpclient gem）
rails httpclient 获取转换后的地址：
&lt;a href="http://guduxiaoxian.iteye.com/blog/1156047" rel="nofollow" target="_blank"&gt;http://guduxiaoxian.iteye.com/blog/1156047&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;我用 nokogiri 做抓取时需要知道某 url 跳转后的 url，如：
&lt;a href="http://t.cn/h34YC" rel="nofollow" target="_blank"&gt;http://t.cn/h34YC&lt;/a&gt; 的真实地址是：
&lt;a href="http://www.guwendong.com/post/2008/social_media_algorithm_reddit.html" rel="nofollow" target="_blank"&gt;http://www.guwendong.com/post/2008/social_media_algorithm_reddit.html&lt;/a&gt;
我要获取这个真实地址。&lt;/p&gt;</description>
      <author>freemem</author>
      <pubDate>Fri, 11 May 2012 10:47:59 +0800</pubDate>
      <link>https://ruby-china.org/topics/3211</link>
      <guid>https://ruby-china.org/topics/3211</guid>
    </item>
    <item>
      <title>end of file reached 的问题一般是什么原因引起？</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;rake aborted!
end of file reached
/usr/local/ruby/lib/ruby/1.8/net/protocol.rb:135:in `sysread'
/usr/local/ruby/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
/usr/local/ruby/lib/ruby/1.8/timeout.rb:62:in `timeout'
/usr/local/ruby/lib/ruby/1.8/timeout.rb:93:in `timeout'
/usr/local/ruby/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
/usr/local/ruby/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/local/ruby/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:2020:in `read_status_line'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:2009:in `read_new'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:1050:in `request'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:1037:in `request'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:1035:in `request'
/usr/local/ruby/lib/ruby/1.8/net/http.rb:772:in `get'
/usr/local/ruby/lib/ruby/gems/1.8/gems/faraday-0.8.0/lib/faraday/adapter/net_http.rb:70:in `perform_request'
/usr/local/ruby/lib/ruby/gems/1.8/gems/faraday-0.8.0/lib/faraday/adapter/net_http.rb:35:in `call'
/usr/local/ruby/lib/ruby/gems/1.8/gems/faraday-0.8.0/lib/faraday/request/url_encoded.rb:14:in `call'
/usr/local/ruby/lib/ruby/gems/1.8/gems/faraday-0.8.0/lib/faraday/connection.rb:226:in `run_request'
/usr/local/ruby/lib/ruby/gems/1.8/gems/oauth2-0.5.2/lib/oauth2/client.rb:88:in `request'
/usr/local/ruby/lib/ruby/gems/1.8/gems/oauth2-0.5.2/lib/oauth2/access_token.rb:98:in `request'
/usr/local/ruby/lib/ruby/gems/1.8/gems/weibo2-0.1.0/lib/weibo2/interface/base.rb:15:in `request'
/usr/local/ruby/lib/ruby/gems/1.8/gems/weibo2-0.1.0/lib/weibo2/interface/base.rb:23:in `get'
/usr/local/ruby/lib/ruby/gems/1.8/gems/weibo2-0.1.0/lib/weibo2/interface/statuses.rb:67:in `user_timeline'
/root/rss/rakefile.rb:28
/root/rss/rakefile.rb:26:in `each'
/root/rss/rakefile.rb:26
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `execute'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `run'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/ruby/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/local/ruby/bin/rake:19:in `load'
/usr/local/ruby/bin/rake:19
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>freemem</author>
      <pubDate>Wed, 02 May 2012 21:39:58 +0800</pubDate>
      <link>https://ruby-china.org/topics/3041</link>
      <guid>https://ruby-china.org/topics/3041</guid>
    </item>
    <item>
      <title>Nokogiri 解析 html 时出现 no such file or directory ，怎么解决？</title>
      <description>&lt;p&gt;这个貌似是同样的问题：&lt;a href="http://www.iteye.com/problems/43990" rel="nofollow" target="_blank"&gt;http://www.iteye.com/problems/43990&lt;/a&gt;  &lt;/p&gt;</description>
      <author>freemem</author>
      <pubDate>Wed, 02 May 2012 11:35:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/3022</link>
      <guid>https://ruby-china.org/topics/3022</guid>
    </item>
    <item>
      <title>以下正则匹配 10 个有意义的字符，Ruby 下貌似出错。</title>
      <description>&lt;p&gt;难道是因为区间里面不能有区间吗？&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[[\u4e00-\u9fa5],\.\;\?\$''""\-\(\)\[\]，。;？￥·、（）「］\w]{2,}


&lt;/code&gt;&lt;/pre&gt;</description>
      <author>freemem</author>
      <pubDate>Tue, 01 May 2012 17:47:00 +0800</pubDate>
      <link>https://ruby-china.org/topics/3012</link>
      <guid>https://ruby-china.org/topics/3012</guid>
    </item>
    <item>
      <title>用户 Nokogiri 解析到乱码，我该写一个什么方法让以下内容不存入数据库？</title>
      <description>&lt;p&gt;假设此变量为：p.text&lt;/p&gt;

&lt;p&gt;äº¬ä¸œå•†åŸŽå’Œä¸­å›½äºšé©¬é€Šä»Šæ—¥ç‰¹ä»·æŠ¥ï¿¥1899åŒ…é‚®ï¼ŒåŽ†å²ä½Žä»·ï¼Œä½ŽäºŽå…¶ä»–B2Cæ¸ é“è‡³å°‘ï¿¥2099ä»¥ä¸Šçš„æŠ¥ä»·ã€‚æ³¨ï¼šæ­¤æ¬¾ç›®å‰å·²å¯ä»¥å‡çº§åˆ°android 4.0ã€‚   &lt;/p&gt;</description>
      <author>freemem</author>
      <pubDate>Tue, 01 May 2012 16:47:27 +0800</pubDate>
      <link>https://ruby-china.org/topics/3011</link>
      <guid>https://ruby-china.org/topics/3011</guid>
    </item>
    <item>
      <title>Nokogiri 在 Linux CentOS 5 下不工作</title>
      <description>&lt;p&gt;建立了一个 rake 任务，在 MacOS 下运行正常，在 linux centOS5 下不工作，也不报错，什么原因？请高手帮忙看看，这是部分代码：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;task&lt;/span&gt; &lt;span class="ss"&gt;:grab&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'rubygems'&lt;/span&gt;
  &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'activerecord'&lt;/span&gt;
  &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'nokogiri'&lt;/span&gt;
  &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'open-uri'&lt;/span&gt;
  &lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'article'&lt;/span&gt;

 &lt;span class="vi"&gt;@article&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Article&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;
 &lt;span class="vi"&gt;@article.class&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"1"&lt;/span&gt;
 &lt;span class="vi"&gt;@article.time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;gm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="no"&gt;Time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#上面代码正常（数据可正常存入数据库），以下代码在 MacOS 下运行正常，在 linux centOS5 下不工作：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt; &lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://www.cnblogs.com/ilazysoft/archive/2011/11/04/2236337.html"&lt;/span&gt;
  &lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;Nokogiri&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;HTML&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;link&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
  &lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"#single a,"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;reg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;/更多详情/&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="n"&gt;reg&lt;/span&gt;
      &lt;span class="vi"&gt;@article.olink&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="ss"&gt;:href&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
      &lt;span class="k"&gt;break&lt;/span&gt;
    &lt;span class="k"&gt;end&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
 &lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;css&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"#single p"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;each&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;reg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sr"&gt;/.{140,}/&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt; &lt;span class="o"&gt;=~&lt;/span&gt; &lt;span class="n"&gt;reg&lt;/span&gt;
    &lt;span class="vi"&gt;@article.description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;text&lt;/span&gt;
    &lt;span class="k"&gt;break&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;span class="vi"&gt;@article.save&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;</description>
      <author>freemem</author>
      <pubDate>Mon, 30 Apr 2012 21:54:24 +0800</pubDate>
      <link>https://ruby-china.org/topics/2999</link>
      <guid>https://ruby-china.org/topics/2999</guid>
    </item>
    <item>
      <title>用 Sinatra 开发的应用如何使用 will_paginate 翻页？</title>
      <description>&lt;p&gt;no rails.  &lt;/p&gt;</description>
      <author>freemem</author>
      <pubDate>Mon, 30 Apr 2012 11:02:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/2988</link>
      <guid>https://ruby-china.org/topics/2988</guid>
    </item>
  </channel>
</rss>
