自分自身のための ものづくり / 自分自身のためのものづくりメモ

* HTMLをXHTMLに変換してREXMLで処理

プログラム(抜粋)
h = Html2xhtml.new
h.read_array(readlines)

require "rexml/document"
y = REXML::Document.new(h.body.to_s)

y.elements["/html/body"].elements[6, 'table'].elements['tr/td'].elements.each('a') do |a|
    p a.attributes['href']
    print a.text.strip + "\n"
end
結果
"http://auctions.yahoo.co.jp/jp/0-category.html?"
オークション
"http://list3.auctions.yahoo.co.jp/jp/23336-category.html?"
コンピュータ
"http://list3.auctions.yahoo.co.jp/jp/2084039759-category.html?"
パーソナルコンピュータ
楽だ…めっちゃ楽だ…

#Web #ヤフオク

* RandomNote 作成日を表示+年月日のみで時分秒は非表示

def print_leaf(fname, view=nil, anchor=1)
内を改造
      s = "%s\n\n%s\n%s" % [mes.chomp, Time.at(fname.gsub(/\D/,'').to_i).strfti\
me('create : %Y/%m/%d (%a)'), File.mtime(fname).strftime('update : %Y/%m/%d (%a\
)')] # modified by bakuchikujuu

#RandomNote #Web

* REXMLを使ってヤフオクのXMLデータを読む

 楽だ…。機械で読みやすいデータが提供されてるというのはこんなにもありがたい物だったとは。
 また、便利なREXMLに感謝。

#!ruby -Ku

require 'jcode'
require 'nkf'
require "rexml/document"

file = File.new( "y.xml" )
y = REXML::Document.new file

y.root.each_element('item') do |item|
  p item.elements['auctionID'].text
  p item.elements['title'].text
  item.each_element('seller') do |s_item|
    p s_item.elements['itemlist'].text
    p s_item.elements['rating'].text
  end
  p item.elements['url'].text
  p item.elements['img'].text
  p item.elements['price'].text
  p item.elements['bids'].text
  p item.elements['endtime'].text
end

Yahoo!デベロッパーネットワーク - オークションWebサービス
http://developer.yahoo.co.jp/auctions/

REXML - Home
http://www.germane-software.com/software/rexml/index.html

私家版REXML APIリファレンス
http://www.cozmixng.org/~kou/ruby/rexml/reference

REXML Tutorial - Home
http://www.germane-software.com/software/rexml/docs/tutorial.html

REXML であそぶ
http://www.namikilab.tuat.ac.jp/~sasada/prog/rexml.html


#Ruby #REXML #ヤフオク #YAH! #途中経過

* RandomNoteのrefererを検索エンジン(等)に登録させない

 アクセスログを眺めてたら、RandomNoteのrefererページに検索エンジン経由でのアクセスがあった。

 Webページでの披検索語の表示は迷惑極まりない。その単語が更にCGIに登録されて、それを検索エンジンが拾って、その単語で検索した人がアクセスして…。
 俺自身が大嫌いな要素なのに自分がやらかしていたとは…なんてこった…。

 というわけで、ざくざくとRandomNoteをいじった。
 もともとのコードにヘッダにロボット避けを入れる機能があるので、refererの表示の際にはそのようにするように変更。
def do_referer内
#  print_header(' - referer')
print_header(' - referer', true) # 検索エンジンにリンク元が登録されると邪魔

 あと、cahge_logも検索エンジンにインデックスされるべきじゃない。
def do_change_log
#  print_header
print_header(' - change log', true)

#RandomNote#Web