スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

auの機種名称とデバイスIDを取得する

auのユーザーエージェントのページに、機種名称とデバイスIDの一覧が載っています。
ページを解析して、「機種名称,デバイスID」の組のCSVを出力したいと思います。
スクリプトはrubyで、HTMLのパースはnokogiriを使用します。
肝は最初のxpathの所にありまして、ここで必要なtrタグを根こそぎ集めています。
後はtdの中身を機種名称、デバイスIDの順に交互に出力するだけです。
ただしデバイスIDの一部に同じ機種名に対して複数持つものがあるので、そこだけ注意が必要です。
後、当然ですがKDDIがこのサイトの構成を少しでも変えるとこのスクリプトは動かなくなるので使用する場合はその点を気をつけてください。
# -*- coding: utf-8 -*-
require 'nokogiri'
require 'open-uri'
require 'kconv'

url = "http://www.au.kddi.com/ezfactory/tec/spec/4_4.html"
xpath = %{//table[@border='0'][@cellspacing='1'][@cellpadding='0'][@summary='']//tr}
nokogiri = Nokogiri::HTML.parse(open(url).read.toutf8, nil, 'UTF-8')
trlist = nokogiri.xpath(xpath)
trlist.each(){|tr|
tdlist = tr.xpath(%{./td})
if "機種名称" == tdlist[0].text().toutf8
next;
end
flag = true
name = ""
tdlist.each(){|td|
if flag
name = td.text()
print "#{name},"
flag = false
else
value = td.text()
ary = value.split("/")
if ary.size > 1
puts "#{ary[0]}\n#{name},#{ary[1]}"
else
puts value
end
flag = true
end
}
}

スポンサーサイト

Tag : ruby

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。