<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Daniel_Xu (Daniel-Xu)</title>
    <link>https://ruby-china.org/Daniel_Xu</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>rails8 有感</title>
      <description>&lt;p&gt;最近看了 DDH 的 rails8 发布会，10 年前学 rails 从来没有看过 youtube，后来留学了习惯看外网视频后，DHH 感觉太有意思了，长的也像小贱贱（死侍）。&lt;/p&gt;

&lt;p&gt;rails8 用 sqlite，而且去除一堆依赖，感觉真的很不错，用起来！&lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Thu, 09 Jan 2025 19:21:55 +0800</pubDate>
      <link>https://ruby-china.org/topics/44010</link>
      <guid>https://ruby-china.org/topics/44010</guid>
    </item>
    <item>
      <title>indie 有感</title>
      <description>&lt;p&gt;最近开发了一个款应用，用 rust 写的，很小：&lt;/p&gt;

&lt;p&gt;召唤精灵。它能一键调用大模型，结果既能输出到屏幕，也能直接替换文字，非常适合翻译和文字处理场景。支持 Windows 和 macOS 系统，&lt;/p&gt;

&lt;p&gt;官网：&lt;a href="https://zhaohuanjingling.cn/" rel="nofollow" target="_blank"&gt;https://zhaohuanjingling.cn/&lt;/a&gt;
文档： &lt;a href="https://raoiqif32mm.feishu.cn/wiki/OO30wl2fiioWhwkv6WDci2TMnte" rel="nofollow" target="_blank"&gt;https://raoiqif32mm.feishu.cn/wiki/OO30wl2fiioWhwkv6WDci2TMnte&lt;/a&gt;
案例： &lt;a href="https://i.imgur.com/RV4fZ9j.gif" rel="nofollow" target="_blank"&gt;https://i.imgur.com/RV4fZ9j.gif&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;这些年以来，从 elixir, phoenix, rust, emberjs, reactjs 一直写过来，写了一圈后发现，如果未来的路就是 indie hacker，那么就不要再折腾了，所以我决定重新拾起 rails。&lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Fri, 08 Nov 2024 13:44:20 +0800</pubDate>
      <link>https://ruby-china.org/topics/43939</link>
      <guid>https://ruby-china.org/topics/43939</guid>
    </item>
    <item>
      <title>javascript 的传值问题</title>
      <description>&lt;p&gt;我一直以为 javascript 传参数是 简单的复制一份原本，可是最近 在我写一个小东西 (Tic-Tac-Toe 游戏) 的时候，一个 bug 调试了 1 整天，后来才发现了这个问题，大家看看，以后都注意下： &lt;/p&gt;

&lt;p&gt;repo: &lt;a href="https://github.com/Daniel-Xu/Tic-Tac-Toe" rel="nofollow" target="_blank"&gt;https://github.com/Daniel-Xu/Tic-Tac-Toe&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;代码用了 require.js 和 underscore.js 稍微重构了一下，喜欢的给个 star&lt;/p&gt;
&lt;h2 id="先上代码："&gt;先上代码：&lt;/h2&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;num&lt;/span&gt;  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
    &lt;span class="nx"&gt;obj1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;daniel-xu&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="nx"&gt;obj2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;obj2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;num is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;obj1 is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;obj2 is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;test&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;num is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;obj1 is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;obj2 is: &lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;obj2&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="答案是："&gt;答案是：&lt;/h2&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="nx"&gt;obj1&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;obj2&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;num&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="nx"&gt;obj1&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;daniel-xu&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nx"&gt;obj2&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="现象解释"&gt;现象解释&lt;/h2&gt;
&lt;p&gt;It's always pass by value, but for objects the value of the variable is a reference&lt;/p&gt;

&lt;p&gt;总是按值传递，但是对于 object，这个参数本身是一个引用。我来解释下这句话。&lt;/p&gt;

&lt;p&gt;比如  num 这个，函数里面的 num 只是一个副本，所以 外面的值没变化&lt;/p&gt;

&lt;p&gt;同理  obj2 这个值，虽然 obj2 这个值是一个 reference（即引用），但是&lt;code&gt;test&lt;/code&gt; 函数体中只是参数 obj2 的一个副本，所以，它也没有变。函数一退出，作用域就结束了&lt;/p&gt;

&lt;p&gt;而对  obj1，虽然函数体中的也是 一个副本，但是引用指向的还是同一个对象，所以改变 对象的属性，就会永久改变。&lt;/p&gt;
&lt;h2 id="resource"&gt;resource&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://snook.ca/archives/javascript/javascript_pass" rel="nofollow" target="_blank"&gt;http://snook.ca/archives/javascript/javascript_pass&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="题外话"&gt;题外话&lt;/h2&gt;
&lt;p&gt;感觉 chrome 的 debug 越来越好用了。&lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Tue, 15 Apr 2014 08:18:11 +0800</pubDate>
      <link>https://ruby-china.org/topics/18605</link>
      <guid>https://ruby-china.org/topics/18605</guid>
    </item>
    <item>
      <title>ruby send 的一些疑惑</title>
      <description>&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;define_methods&lt;/span&gt;
  &lt;span class="n"&gt;shared&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:counter&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="n"&gt;shared&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="no"&gt;Kernel&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt; &lt;span class="ss"&gt;:define_method&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;:inc&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;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;shared&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;shared&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&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;define_methods&lt;/span&gt;
&lt;span class="n"&gt;counter&lt;/span&gt;
&lt;span class="n"&gt;inc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;counter&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;这里是 send 的动态派发的特性，我查了 send 是 Object＃send，即是 Object 的实例方法，而这为什么可以像类方法一样调用呢？&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;假设问题 1 已经解决，是什么保证了 定义的方法在顶级作用域中？我个人认为和 Kernel 有关，所以请 ruby 高手指点下&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Wed, 06 Mar 2013 15:48:49 +0800</pubDate>
      <link>https://ruby-china.org/topics/9186</link>
      <guid>https://ruby-china.org/topics/9186</guid>
    </item>
    <item>
      <title>升级 ruby 2.0 吧 vim 不好用了</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$: vim
dyld: Library not loaded: /Users/Daniel-Xu/.rvm/rubies/ruby-1.9.3-p327/lib/libruby.1.9.1.dylib
  Referenced from: /usr/local/bin/vim
  Reason: image not found
Trace/BPT trap: 5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;报以上错误，但是／usr/bin/vim 中的 vim 是好的&lt;/p&gt;

&lt;p&gt;有人遇到这个问题么，网上有说是 xcode 什么的？&lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Fri, 01 Mar 2013 13:09:56 +0800</pubDate>
      <link>https://ruby-china.org/topics/9042</link>
      <guid>https://ruby-china.org/topics/9042</guid>
    </item>
    <item>
      <title>rails 图片上传问题</title>
      <description>&lt;h2 id="问题1"&gt;问题 1&lt;/h2&gt;
&lt;p&gt;&lt;/p&gt;

&lt;p&gt;rails 文件上传时，如果不点提交按钮，就不会传 p_pic 参数，而我现在有好几个上传框，有什么能让 p_pic 传过去么，就算我没有点&lt;code&gt;choose file&lt;/code&gt; 它会传个空&lt;/p&gt;
&lt;h2 id="问题2"&gt;问题 2&lt;/h2&gt;
&lt;p&gt;!params[:p_pic].blank? &amp;amp;&amp;amp; params[:p_pic].size &amp;lt; i&lt;/p&gt;

&lt;p&gt;这个问题是，假如&lt;code&gt;params[:p_pic]&lt;/code&gt;为&lt;code&gt;nil&lt;/code&gt;, 还是会 &lt;code&gt;params[:p_pic].size&lt;/code&gt; 检测下是否有&lt;code&gt;size&lt;/code&gt;
方法，这样就会报错，有什么办法能解决这个么&lt;/p&gt;

&lt;p&gt;Thanks any way &lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Fri, 01 Feb 2013 14:26:31 +0800</pubDate>
      <link>https://ruby-china.org/topics/8545</link>
      <guid>https://ruby-china.org/topics/8545</guid>
    </item>
    <item>
      <title>ruby  如何获取网页中 js 运行后写入的 html 代码</title>
      <description>
&lt;p&gt;我想抓取淘宝的一 list 下的所有内容，然后，每个 link 已经获取，但是，当我用&lt;/p&gt;

&lt;p&gt;hpricot 和 httpclient 去获取每个 link 的源码时，puts 出的是 js&lt;/p&gt;

&lt;p&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/a&gt;"&amp;gt;

&lt;/p&gt;




function htmlspecialchars(str){  
    str = str.replace(//g, '&amp;gt;');
    str = str.replace(/"/g, '"');
    str = str.replace(/'/g, ''');
    return str;
}
function bol(){
    var inf = (top.location!=self.location);
    var qs = location.search.split("?")[location.search.split("?").length-1].split("&amp;amp;");
    qso = {};
    for(var i=0;i&amp;lt;qs.length if var tmpa='qs[i].split("=");' qso tu="unescape(qso.tu);" tu.length exit oi='document.createElement("iframe");' oi.id="iobj" oi.border="0;" oi.frameborder="0;" oi.style.height="1px" oi.style.width="1px" document.body.appendchild cd="oi.contentWindow.document;" cd.write&amp;gt;&amp;lt;bo style="margin:0px;padding:0px"&amp;gt;&amp;lt;scr src="http://js.tongji.linezing.com/1023331/tongji.js" type="text/javascript"&amp;gt;&amp;lt;/scr&amp;gt;&amp;lt;noscr&amp;gt;&amp;lt;a href="http://www.linezing.com"&amp;gt;&amp;lt;img src="http://img.tongji.linezing.com/1023331/tongji.gif"&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/noscr&amp;gt;&amp;lt;/bo&amp;gt;');
        window.setTimeout(function(){cd.close();if(qso.tu)location.href = unescape(qso.tu);},1000);         
    }else{
        if(qso.co&amp;amp;amp;&amp;amp;amp;qso.co!=""){
            document.cookie="tk_trace="+(qso.co)+";path=/;domain=.taobao.com";
        }
        if(qso.tu &amp;amp;amp;&amp;amp;amp; (qso.tu.indexOf("http%3A%2F%2Fs.click.taobao.com%2F")===0 || qso.tu.indexOf("http%3A%2F%2Fs.click.alimama.com%2F")===0
            || qso.tu.indexOf("http%3A%2F%2Fitem8.taobao.com%2F")===0 || qso.tu.indexOf("http%3A%2F%2Fshop8.taobao.com%2F")===0)){
            if(!window.attachEvent){
              document.write('&amp;lt;input style="display:none" type="button" id="exe" value="" onclick="window.location=\''+unescape(qso.tu)+'\'"&amp;gt;');
              document.getElementById('exe').click();
            }else{
              document.write('&amp;lt;a style="display:none" href="'+unescape(qso.tu)+'" id="exe"&amp;gt;&amp;lt;/a&amp;gt;');
              document.getElementById('exe').click();
            }
        }
    }
}//end of bol()
bol();
&amp;lt;/qs.length&amp;gt;

&lt;p&gt;
&lt;/p&gt;

&lt;p&gt;我想问下怎么能获取到 js 填充过后的源码，可以让我来搜索字段，谢谢&lt;/p&gt;
</description>
      <author>Daniel_Xu</author>
      <pubDate>Tue, 27 Nov 2012 12:31:09 +0800</pubDate>
      <link>https://ruby-china.org/topics/7118</link>
      <guid>https://ruby-china.org/topics/7118</guid>
    </item>
    <item>
      <title>nokogiri 抓取网页时 503 Service Temporarily Unavailable</title>
      <description>&lt;p&gt;hi all&lt;/p&gt;

&lt;p&gt;我在用 nokogiri 抓取网页时，总会出现 503 Service Temporarily Unavailable&lt;/p&gt;

&lt;p&gt;nokogiri(open(link))&lt;/p&gt;

&lt;p&gt;或许说 link 转码有问题，我就 nokogiri(open(URI.escape(link))&lt;/p&gt;

&lt;p&gt;还是不行&lt;/p&gt;

&lt;p&gt;实验 n 次能成功一次&lt;/p&gt;</description>
      <author>Daniel_Xu</author>
      <pubDate>Mon, 26 Nov 2012 16:24:39 +0800</pubDate>
      <link>https://ruby-china.org/topics/7103</link>
      <guid>https://ruby-china.org/topics/7103</guid>
    </item>
  </channel>
</rss>
