image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« ピックアップ: 米IBMに“転職”したScott Ambler氏が語る,$599のiPhone 製造コストはたったの$220, etc... | トップページ | 感想: きみにしか聞こえない »

2007-07-24

ruby で html から rss を生成 (その2)

以前の投稿
- ruby で html から rss を生成
  >> http://youichi-kato.cocolog-nifty.com/blog/2007/06/ruby_html_rss_6b7f.html
の中で

本当は、
  xfy Community Forum
http://www.xfytec.com/community/modules/newbb/viewforum.php?forum=22&sortsince=1000
の rss を生成したかったのだが。

と書いた。

ruby で https にアクセスする方法が判った。
後は、ページの構造を調べて、rss wp生成するだけだ。今週中にはできるかな?

以下のプログラムでは、xfy.com 日本語フォーラムのトップページの内容が得られる。

# xfy.com のフォーラムのトップページにアクセスする。
#   See http://d.hatena.ne.jp/omochist/20060919
#       http://d.hatena.ne.jp/unageanu/20070504
#       http://jp.rubyist.net/magazine/?0013-BundledLibraries

require 'net/https'
require 'kconv'
require 'pp'

site = 'www.xfytec.com'
page = '/community/modules/newbb/index.php?cat=3'

https = Net::HTTP.new(site, 443)
# proxy が必要なら
# https = Net::HTTP.Proxy(host, port [, user, pass]).new(site, 443)

https.use_ssl = true
# https.ca_file = './base64.cer' # サーバーの公開鍵証明書を指定
https.verify_mode = OpenSSL::SSL::VERIFY_NONE # 証明書チェックなしで接続する
# https.verify_depth = 5

https.start { |w|
  response = w.get(page)
  puts response.body.tosjis
}

gmail にアクセスする例を web で見つけた。少しだけ変更してみた。

# See http://d.hatena.ne.jp/omochist/20060919

require 'net/https'
require 'rexml/document'
require 'kconv'
require 'pp'

puts "gmail-atom.rb account password" if ARGV.length != 2

account = ARGV.shift
pass = ARGV.shift

# 一応,SSL接続
https = Net::HTTP.new('mail.google.com', 443)
https.use_ssl = true
# VERIFY MODEをVERIFY_NONEにしないとだめ.
# この辺はGMailでSMTP接続するときと同じですね.
https.verify_mode = OpenSSL::SSL::VERIFY_NONE

# 接続
https.start

req = Net::HTTP::Get.new('/mail/feed/atom')
# ベーシック認証.こーやってするのかーと勉強になった.
req.basic_auth account, pass

# レスポンスの取得
res = https.request(req)

# レスポンスのbodyをパースしてREXMLオブジェクトを作成
doc = REXML::Document.new(res.body)

if doc.root[1][1] != nil
  puts doc.root[1][1]
elsif

  # 新着メールだけを取り出す
  # 新着メールが無いと,勿論何も起こらない
  entries = []
  doc.root.each_child { |child|
    entries << child if child.name == "entry"
  }

  entries.each do |entry|
    puts entry.elements["title"].text.tosjis
    puts entry.elements["summary"].text.tosjis
    puts entry.elements["author/email"].text.tosjis
  end
end

# 終了
https.finish

« ピックアップ: 米IBMに“転職”したScott Ambler氏が語る,$599のiPhone 製造コストはたったの$220, etc... | トップページ | 感想: きみにしか聞こえない »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ruby で html から rss を生成 (その2):

» グーグルアース [グーグルアース]
グーグルアースについて書いたブログです。グーグルアースのことなら任せてください。 [続きを読む]

« ピックアップ: 米IBMに“転職”したScott Ambler氏が語る,$599のiPhone 製造コストはたったの$220, etc... | トップページ | 感想: きみにしか聞こえない »

mokuji

2013年12月
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        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク