ÓÃrubyдµÄwebץȡС¹¤¾ß
×î½üÓÉÓÚѧϰʹÓÃlinuxϵÄC¿ª·¢£¬ÐèÒª²éѯLinux Cº¯Êý²Î¿¼£¬¾Í¾³£ÉÏhttp://man.chinaunix.net/develop/c&c++/linux_c/default.htm²é¿´£¬ÃèÊöµÃ±È½ÏÏêϸ¶øÇÒ»¹ÓÐÀý×Ó¡£
ÍøÉÏ»¹ÓÐÐí¶à¸÷ÖÖ¼¼ÊõµÄÍøÒ³¸ñʽµÄ²Î¿¼²ÄÁ϶¼·Ç³£Ç¿´ó£¬¿ÉϧºÜ¶àʱºò¶¼Ã»ÓÐÍø¡£ÓÚÊǾÍÏëд¸ö½Å±¾¿ÉÒÔ°ÑÎĵµÏÂÔØ£¬Ïñandroid¿ª·¢ÕßÎĵµÒ»ÑùŪµ½±¾µØÀ´£¬ÓÃÆðÀ´¾Í·½±ã¶àÁË£¬ÒªÊÇÓÃCHM¹¤¾ß´ò³Échm¸ñʽ¾Í¸üºÃÁË¡£
ÓÚÊǾͶ¯ÊÖÓÃrubyдÁËÕâô¸ö½Å±¾£¬°ÑÍøÒ³¶ÁÈ¡ÏÂÀ´£¬±£´æµ½±¾µØ£¬Í¬Ê±ÏÂÔØÍøÒ³ÖеÄÑùʽ¡¢JSÎļþÒÔ¼°Í¼Æ¬µÈÎļþ£¬²¢Ìæ»»ÏàÓ¦µÄÁ´½Ó£¬¾¡Á¿±£³ÖÍøÒ³µÄЧ¹û¡£Õû¸ö³ÌÐò´óÔ¼300ÐУ¬³¢ÊÔµØ×¥È¡Á˼¸¸öÍøÕ¾¶¼Í¦ºÃ£¬±£ÁôÁËÑùʽ¡¢³¬Á´½ÓÉõÖÁ²¿·ÖµÄJS¡£³ý´ËÖ®Í⣬Ëü»¹ÄÜÏÞÖÆÏÂÔØÎļþµÄÀàÐͺʹóС£¬¿ÉÒÔ……
µ±È»,bug»¹ºÜ¶à£¬¶øÇÒÍøÒ³µÄHTMLÄÚÈݹýÓÚÁé»îºÍ¸´ÔÓ£¬ºÜ¶à¶«Î÷¸ãÏÂÀ´¿ÉÄܾÍÃæÄ¿È«·ÇÁË£¬ÕæÕýҪдһ¸öºÃµÄparser¹ûÈ»ÊÇÏ൱¸´ÔÓ- -!
ÏÂÃæÊÇ´úÂëµÄ×¢ÊÍ£¬ÍêÕûÎļþ¿ÉÔÚ´ËÏÂÔØ¡£
#¶¨ÒåÒ»¸öÄ£¿é,´òÓ¡ÈÕÖ¾
module Log
def Log.i(msg)
print "[INFO]#{msg}\n"
end
def Log.e(msg)
print "[ERROR]#{msg}\n"
end
end
#¶¨ÒåÒ»¸öÀ࣬ÓÃÓÚ·â×°¼ÓÈëµ½¶ÓÁÐÖеÄurl£¬°üº¬ÁËurlµÄÁ´½ÓÉî¶ÈºÍ´ý±£´æµÄÎļþÃûµÄÐÅÏ¢
class UrlObj
attr_accessor :url,:depth,:save_name
def initialize(url,depth,save_name)
@url=url
@save_name=save_name
@depth=depth
end
def info#½âÎöµÃµ½urlÖеÄÐÅÏ¢
return @info if @info
begin
@info=URI.parse(@url)
return @info
rescue Exception=>e
Log.e e
return nil
end
end
def domain#»ñÈ¡urlÖеÄÓòÃû
if @domain
return @domain
elsif !info
Log.e("#{@url}'s host is nil")
return nil
elsif !info.host
Log.e("#{@url}'s host is nil")
return nil
else
return info.host[/\w+\.\w+$/]
end
end
end
½ÓÏÂÀ´ÊÇ×îÖ÷ÒªµÄÒ»ÀàWebSnatcher:
class WebSnatcher
THREAD_SLEEP_TIME=0.5#¶¨Òå³£Á¿£¬Ïß³Ì˯Ãßʱ¼ä
HTTP_RETRY_TIMES=3#ÉèÖôò¿ªÁ´½ÓµÄÖØÊÔ´ÎÊý
#³õʼ»¯Àà±äÁ¿ºÍ¸÷ÖÖÉèÖòÎÊý
def initialize(opt={})
@url_to_download=[]#´ýÏÂÔØµÄurlÈÝÆ÷
@url_to_download_count=0#´ýÏÂÔØµÄurlÊýÁ¿
Ïà¹ØÎĵµ£º
ÈýÕßÖ®¼äÇø±ð²¢²»ÏñÄãÏëµÄÄÇôÄÑ£¬Ò²²»»áÏñÓÐЩÎÄÕÂдµÄÄÇô³¤¡£Í¦¼òµ¥µÄ¡£
Ïà֮ͬ´¦£ºÈýÕß¾ùÔÚkernelÖж¨ÒåµÄ£¬¾ùº¬Óаüº¬½øÄ³ÎïÖ®Òâ¡£
²»Í¬Ö®´¦£º
1¡¢requre,loadÓÃÓÚÎļþ£¬Èç.rbµÈµÈ½áβµÄÎļþ¡£
2¡¢includeÔòÓÃÓÚ°üº¬Ò»¸öÎļþ(.rbµÈ½áβµÄÎļþ)ÖеÄÄ£¿é¡£
3¡¢requreÒ»°ãÇé¿öÏÂÓÃÓÚ¼ÓÔØ¿âÎļþ£¬¶øloadÔòÓÃÓÚ¼ÓÔØÅ ......
ÎÄÕÂת×Ô http://www.ej38.com/showinfo/Ruby-140367.html
¹ý³ÌÈçÏ£º
1¡¢rubyÏÂÔØÒ»¼ü°²×°£º
http://rubyforge.org/frs/download.php/29263/ruby186-26.exe
ruby -v ÏÔʾ°æ±¾£¬°²×°³É¹¦
2¡¢ÏÂÔØrubygems°²×°£º
http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip
½âѹ£¬ruby setup.rb
g ......
#Ò»¡¢ÕâÀïÊÇ×¢ÊÍ£¬Êǵ¥ÐÐ×¢ÊÍ£¬ÀàËÆÓÚ//
puts 3/5#ÕâÀïÊÇÕûÊýÐÎʽµÄ½á¹û
puts 3/5.0#ÕâÀïÊÇСÊýÐÎʽµÄ½á¹û
=begin
ÕâÊǶàÐÐ×¢ÊÍ£¬Êµ¼ÊÉÏÕâÒ²ÊÇRubyÄÚǶÎĵµ¸ñʽ£¬ÀàËÆÓÚJava doc
=end²»µ«ÒªÓÐÆðÖ¹£¬»¹ÒªËõ½ø²ÅÓÐÓá£
=end
#¶þ¡¢Á¬ÐÐ
puts "Hello Ruby!"; puts "This is a "\
"String";# ......
Beginning Ruby from Novice To Perfessional
Head First Rails
Agile Web Development with Rails 3rd Edition(new)
Agile Web Development with Rails 3rd Edition
Agile Web Development with Rails 3rd Editio ......
To get it done is not easy. I spent a whole day to figure out the various compatibility issues along the way out.
Now there still might be potential issues, but it works by my rough test.
Step 1: Install Apache Cassandra
You may know that the Ruby gem cassandra will do it for you.
  ......