Drkcore

31 07 2013 Fastladder Tweet

GitHub版Fastladderをインストールしてみた

5年くらい動かしているオープンソース版Fastladderだけど、この5年のうちにヒトの異動なんかでゴミユーザーが溜まりまくったり、メンテも大変だったり(今はsupervisordで動かしている)と、そろそろ新しくしたくなったので、昨日今日で仮想環境から稼働までさせた。

尚OSはFedora17で、FastladderはGithub版です。

Rubyのインストール

2.0.0-p247を入れたんだけど、OS側のライブラリのヘッダファイルが足りなくて何度もコンパイルしなおしたのでストレスフルだった。ちなみにrbenvは使ってない。

yum install sqlite sqlite-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
yum install libxml2 libxml2-devel
yum install libxslt libxslt-devel
yum install libcurl libcurl-devel
yum install gcc-c++ gcc-c++-devel
yum install mysql mysql-devel
yum install readline readline-devel

くらいはやっておく必要があった。それからnode.jsも必要なので入れておきましょう。

Fastladderを動かすまで

Fastladder を VPS の CentOS5.8 に入れてみた。を参考にすればよいです。

イントラもインターネットもきちんと巡回させる

クローラーはオープンソース版もGithub版もそのままではイントラの巡回をうまくやってくれないです。environment.rbのあたりにプロキシを使わない設定があるのだけどそれを書くとエラーで止まるので、

fastladder.rb(だったかな)に直接正規表現を書き込んだ。

Fastladder.const_set(:HTTP_PROXY_EXCEPT_HOSTS, ["XXXXXXX"]) 
#Fastladder.const_set(:HTTP_PROXY_EXCEPT_HOSTS, []) unless defined? (Fastladder::HTTP_PROXY_EXCEPT_HOST)

プロキシのとこも何故かコメントアウトされているので、ドキュメントを参考に書き換えておいた

@@ -58,13 +59,13 @@ module Fastladder
   def fetch(link, options = {})
     uri = link.kind_of?(URI) ? link : URI.parse(link)

-    http_class = Net::HTTP
-    #if proxy = uri.find_proxy || Fastladder::HTTP_PROXY
-    #  unless Fastladder::HTTP_PROXY_EXCEPT_HOSTS.any? { |pettern| uri.host =~ pettern }
-    #    http_class = Net::HTTP.Proxy(proxy.host, proxy.port, proxy.user, proxy.password)
-    #  end
-    #end
-    http = http_class.new(uri.host, uri.port)
+    if proxy = uri.find_proxy || Fastladder::HTTP_PROXY
+      if Fastladder::HTTP_PROXY_EXCEPT_HOSTS.any? { |pettern| uri.host =~ pettern }
+        http = Net::HTTP.new(uri.host, uri.port, nil, nil, nil, nil)
+      else
+        http = Net::HTTP.new(uri.host, uri.port, proxy.host, proxy.port, proxy.user, proxy.password)
+      end
+    end
     http.open_timeout = options[:open_timeout] || Fastladder::HTTP_OPEN_TIMEOUT
     http.read_timeout = options[:read_timeout] || Fastladder::HTTP_READ_TIMEOUT

OPMLの移行

オープンソース版Fastladderにはフォルダに入ってないとフィードがエクスポート出来ないというバグがあるのだけどすっかり忘れていた。少しハマった後思い出して解決。

今後やりたいこと

  • ログインをOpenIDにしたい(社内OpenIDサーバー立ててあるので)
  • ブックマークサービスとかtwitter系の社内SNSみたいなものとの連携をさせたい

まぁ社内ブックマークサービスも社内SNS(しゃべる)も一度か二度ほどコケてるけどね。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021