hijouguchiの日記

 | 

2008-05-23

2chのdat取得(とりあえず版)

14:59 | はてなブックマーク - 2chのdat取得(とりあえず版) - hijouguchiの日記

 定期的にdat取得できたら便利だななんて思ったので書いてみた。とりあえず版なのでおかしいところがあったら遠慮せずに突っ込んで下さい。むしろ突っ込んでくれれば勉強になるし...。


require 'net/http'
require 'nkf'
$KCODE = "shift-jis"
Net::HTTP.version_1_2 

class Get_2ch

	def initialize(urls)
		@urls = urls
		
		if urls =~ /http:\/\/.*\.2ch.net\/test\/read.cgi\//

			get_url = $&
			get_bottom = $'
	
			if get_url =~ /http:\/\//
		
				if $' =~ /\/test\/read.cgi\//
					@domain = $`
				end
			end

			if get_bottom =~ /\//
				@board = $`
		
				if $' =~ /\//
					@threads = $`
				end
			end
		end
	end
	
	def get_dat
		
		dat_url = "/" + @board + "/dat/" + @threads + ".dat"

		Net::HTTP.start(@domain, 80) {|http|
			response = http.get(dat_url)
			@dat  = NKF.nkf('-w', response.body)
		}
	
		#return @dat
	end
	
	def get_title
	
		colum = @dat.split("\n")
		text = colum[0].split("<>")
		@thread_title = text[text.size.to_i - 1]
		
	end
	
	def make_dat

		dat_title = @thread_title + ".dat"
		file = open(dat_title, "w")
		file.write @dat
		file.close
	end
end


print "スレッドURLを入力して下さい。\n"
urls = gets.chop

dat = Get_2ch.new(urls)
dat.get_dat
dat.get_title
dat.make_dat

スレッド名の取得でちょっと困ってたけど、結構ごまかしてみた。

ゲスト



トラックバック - http://rubyist.g.hatena.ne.jp/hijouguchi/20080523
 |