<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>xiaofan (CrazySpiderMan)</title>
    <link>https://ruby-china.org/xiaofan</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>如何知道调用 Ruby 的某函数会抛出哪些异常?</title>
      <description>&lt;p&gt;我用 Java, 调用一个方法，该方法的 API 会告诉我会抛出哪些潜在的异常。但是 Ruby API (我用 Dash), 我却没办法知道，不可能只有等到运行一段时间后，才晓得有哪些异常抛出。比如 &lt;code&gt;Net::HTTP.get_response&lt;/code&gt;. 怎么知道它会抛出哪些异常？&lt;/p&gt;</description>
      <author>xiaofan</author>
      <pubDate>Mon, 07 Nov 2016 15:48:23 +0800</pubDate>
      <link>https://ruby-china.org/topics/31537</link>
      <guid>https://ruby-china.org/topics/31537</guid>
    </item>
    <item>
      <title>[分享] 你写过 Web 爬虫, 那么你写过 P2P 爬虫吗?</title>
      <description>&lt;p&gt;网络爬虫爱好者为了爬取视频，图片，文档，软件，可能只想到写一个 Web 爬虫，从各大网站爬取。但是你知道吗？这个世界上，还有 DHT 协议，BitTorrent 协议。&lt;/p&gt;

&lt;p&gt;想想看，全世界每天有那么多人通过 BT 种子 &amp;amp; 磁力链接下载资源 (有你懂滴的资源), 如果写个爬虫，从 DHT 网络里"监听"人们正在下载的资源，然后把这个资源的种子信息给下载并保存下来。打造成属于自己的&lt;strong&gt;海盗湾&lt;/strong&gt;! &lt;/p&gt;

&lt;p&gt;这几天，我用 Node.js 重写了我去年用 Python 写出的 DHT 爬虫 + BT 客户端 = P2P 爬虫。为什么用 Node.js 重写呢？除了我闲得蛋疼外，还有个原因是 Node.js 在这个 Network IO 操作频繁的项目上，性能非常非常牛逼，占用也非常少！不过代码难写倒是真的。我花了好多天才重写出来。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;爬虫运行演示视频：&lt;/strong&gt; &lt;a href="span%20class="&gt;&lt;iframe class="embed-responsive-item" src="//player.youku.com/embed/XMTQ4NTIzMDU2MA==" allowfullscreen=""&gt;&lt;/iframe&gt;http://v.youku.com/v_show/id_XMTQ4NTIzMDU2MA==.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;默认参数下，在最便宜的日本区 Vultr VPS 运行 24 小时，可”监听"到 50 万 个 BT 种子信息。我那个 Python 版的爬虫 (只开源一部分), 已经爬了 1400 万种子信息，连续运行了一年多。&lt;/p&gt;

&lt;p&gt;我平常下载资源，都是从我私人种子数据库里搜索，然后拿磁力链接去下载。比如搜索引擎找不到的新电影，我都能从我数据库找到。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;代码在这里： &lt;a href="https://github.com/Fuck-You-GFW/p2pspider" rel="nofollow" target="_blank" title=""&gt;https://github.com/Fuck-You-GFW/p2pspider&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;求 Star !&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;如果你对此也有研究，建议你看看 README.md, 列有这个项目如何发展的计划。如果你对此感兴趣，请 fork 它，贡献你的智慧。&lt;/p&gt;

&lt;p&gt;如果你对 Node.js 比较熟练，也欢迎你重构我的代码，我对 Node.js 不是很熟，代码写得不是很好。&lt;/p&gt;</description>
      <author>xiaofan</author>
      <pubDate>Thu, 03 Mar 2016 18:58:01 +0800</pubDate>
      <link>https://ruby-china.org/topics/29198</link>
      <guid>https://ruby-china.org/topics/29198</guid>
    </item>
  </channel>
</rss>
