ふたば☆ちゃんねる 画像自動ダウンロードスクリプト
世のえろぎーくを見習ってなんかえろいものを作ろうとした結果 - zenpouの日記で書いてましたが
ふたばちゃんねるの画像収集のスクリプト作ってました。
作ってたけど全然使ってないので、思いつきで公開。
require 'net/http' require 'uri' $KCODE='shift' class Dir def self.exist? dir File.directory?(dir) end end class Futaba HERF_PATTERN =/<a\n* href=\"(red\/\d+.htm)\" target=_blank/ DIR= "img" URL_LIST_FILE = "list.txt" def initialize @get = 0 fp = open(URL_LIST_FILE) @dir = DIR fp.each do | url | url.chomp! url.gsub!(/#.*/,"") url.strip! next if url.to_s.empty? if url =~ /:$/ @dir = File.join( DIR , url.gsub(/:/,"")) Dir.mkdir(@dir) unless Dir.exist?(@dir) else p "get_strting...: #{url}" p "nohit...: #{url}" if get_img(url) == 0 p "get...: #{@get}" end end fp.close end def get_img(url) count = 0 @get = 0 url_parent = url.gsub(/[^\.\/]+\.html*$/,"") body = Net::HTTP.get_response(URI.parse(url)).body body.scan(HERF_PATTERN) do | link | url = url_parent + link[0] local_response = Net::HTTP.get_response(URI.parse(url)) img_url = local_response.body.scan(/(src\/[a-zA-Z0-9]*\.jpg)/).to_s unless img_url.empty? img_url = url_parent + img_url file_name = img_url.scan(/([a-zA-Z0-9]+\.jpg)/).to_s file_path =File.join(@dir, file_name) unless File.exist?(file_path) img_fp = open(file_path,"w") local_response = Net::HTTP.get_response(URI.parse(img_url)) img_fp.print local_response.body img_fp.close p "GET: #{file_name}" @get += 1 end end count += 1 end count end end Futaba.new
listファイルを作成する必要があるので
list.txtと言うファイルに
kabegami: http://dat.2chan.net/l/futaba.htm http://dat.2chan.net/l/1.htm http://dat.2chan.net/l/2.htm http://dat.2chan.net/l/3.htm niji: http://tmp.2chan.net/img2/futaba.htm http://tmp.2chan.net/img2/1.htm http://tmp.2chan.net/img2/2.htm http://tmp.2chan.net/img2/3.htm
と言う記述をしてください。
kabegami:とかの行は保存するディレクトリの名前になります。
後は、imgと言うディレクトリ配下にlist.txtで指定したディレクトリ名ごとに
分かれてファイルが書き出されます。
1日適当にまわすと何千枚とかになるので数日ですぐにスクリプトとめちゃいました。