忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

霧積ダムのTwitterBotを作りました
twitterに自動でメッセージを投稿したくて、調べてみました。
まず、gem install twitter でインストールします。
次は、以下のようにソースコードを書くだけです。

twitter.rb
require 'rubygems'
require 'twitter'
require 'nkf'

#idとpasswordを入力
TWITTER_ID ='id'
TWITTER_PASSWORD='passward'
 
#メッセージを作成
message = NKF.nkf("-w","hello,world!")

#twitterに投稿
twitter = Twitter::Base.new(TWITTER_ID,TWITTER_PASSWORD)
twitter.update(message)

たったこれだけです。

文字コードをUTF-8に変換して送信するところで、つまづきました。
 
PR

webpageを作るときのメモ
この記事は私がwebpageを作成するためのメモです。

htmlを書くためにAptana studioをインストールする。
これをダウンロードし、features,pluginsをコピーする。

文字コードをUTF-8に設定する。
htmlのheadでUTF-8を指定する。


画像に透かしを入れるためにWaterMarkを使う。。

透過画像ファイルを作るために、かんたん透過くん、を使う。
 
rubyでブログの画像を全部ダウンロード
あるブログを見ていて画像をダウンロードしたくなりました。firefoxのアドオンDownThemAll!を使って1ページごとに画像を落としていきました。しかし、エロ画像へのリンクは騙しがあるので、ファイルが無いページでもDownThemAll!を起動するのは面倒だし、何より時間の無駄だと思った。
昼間留守のうちにブログの画像を端から端まですべてダウンロードしておいて、帰ってきたら画像を見るだけだ、という状態を作りたいと思った。

そこで、最近始めたrubyを使ったら実現できるのではないかと思った。
いろいろ悩みながらソースコードを書いてみた。実行結果は下の写真のとおりうまくいった。これからは画像が沢山あるブログを見つけるだけだ。

ダウンロードした画像
ruby

今までの面倒な作業は何だったのだろうか。もっと早くrubyをやっていればよかった。

download

hpricotは標準ライブラリではないのでインストールしなくてはならない。
gem install hpricot でインストールする。

get_jpg.rb
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'net/http'

Net::HTTP.version_1_2
links_list = []
n = 1

#画像のuriを収集
for i in 0..50
  begin
    doc = Hpricot(open(uri = "http://doragong.19.dtiblog.com/page-#{i}.html").read.downcase)
  rescue
    sleep(1)
    retry
  end
  (doc/:a).each {|link|
    if link[:href] =~ /\.jpe?g/
      links_list << link[:href]
    end
  }
end

#画像をダウンロードして保存
links_list.uniq!.each{|link|
  if link =~ %r|http://(.*?)(/.*/(.*\.jpg))|
    print n,"\sDownloding...\s",link,"\n"
    begin
      open($3,"wb"){|file|
        Net::HTTP.start($1, 80) {|http|
          response = http.get($2)
          file.puts response.body
        }
      }
    rescue
      next
    end
    n += 1
  end
}

まずwebpageを開いて、画像のURIを収集します。URIはlinks_listという配列に入れます。次はURIをnet/httpを使ってダウンロードします。画像が開けなかった場合は、その画像が無いとして次の画像に移ります。

悩んだこと
ファイルをテキスト形式で保存してしまい、画像が見れなかった。wではなくwbとしてバイナリで保存したら解決した。
webpageに連続してアクセスしたため、強制的に切断されてしまうエラーが出た。error処理を行い、切断された場合には1秒後に再度アクセスするようにした。

参考文献
ページ内の画像を一括してダウンロードするRubyスクリプト
RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize
Ruby Scraping
F1ベルギーGP
F1ベルギーグランプリが昨日から始まりました。初日のフリー走行は、朝は路面がドライでしたが、午後になると雨が降り出しました。
Panasonic Toyota Racingチームのヤルノ・トゥルーリのマシンに電気系トラブルが発生し、雨による赤旗中断もあって、予定のプログラムを実行できなかったそうです。
赤旗はフォースインディアのフィジケラがクラッシュしたのが原因です。フリー走行二回目が始まって一時間ほど経ったときの出来事でした。フィジケラのクラッシュ以前にも、何台もスピンしていたようなので、路面はかなり滑りやすい状態だったのではないかと考えられます。
中島一貴は、フリー1回目15番手、2回目18番手でした。チームメイトのロズベルグは1回目は13番手でしたが、セットアップを変更した2回目で6番手に上昇しました。
土曜日のフリー走行は日本時間18時(現地時間11時)から始まります。
 
ブログを始めました。
F1とRubyについて書こうと思います。
好きなチームはフェラーリです。キミ・ライコネンが好きなのですが、マッサの活躍にも注目しています。調子がいいようなので、マッサが今年優勝するかもしれないなと思いながら、いつもテレビを見ています。今年初開催のシンガポールGPは史上初のナイトレースになるので、面白いレースになりそうだと期待しています。
Rubyはついこの前始めたばかりです。勉強のために稚拙なコードを公開したいと思います。批判していただければ幸いです。
2008年9月5日 崖の上の宗介
 
最新CM
[10/29 rafting]
最新TB
アクセス解析

ジオターゲティング
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
プロフィール
HN:
崖の上の宗介
性別:
非公開
ブログ内検索
カウンター
アクセス解析
バーコード