[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46650] xpathについて

From: Soichi Ishida <zau_777_emacs@...>
Date: 2009-12-17 00:17:56 UTC
List: ruby-list #46650
soichi です。

ruby 1.8.6
ubuntu 8.04
です。

先日は失礼しました。勉強不足でした。
xpathに関して質問させてください。

http://www11.ocn.ne.jp/~kui168/link37.html

のページから東証一部の企業データベースを作るために、企業コードと企業名、そして種類(水産、機械など)を取り出したいと思います。(CSVファイルは探せばあるんですが、自分のRuby とHTMLの勉強のためにやってます。)

最終的にはdo end ループでhtmlの枝先を集めていくんでしょうが、最初の一つだけを拾ってみようとこんな感じにしてみましたが、まったくダメです。
--------------------
require 'rubygems'
require 'open-uri'
require 'nokogiri'
require 'kconv'
$KCODE = "utf8"
url = "http://www11.ocn.ne.jp/~kui168/link37.html"

doc = Nokogiri::HTML(open(url).read.toutf8)
xpath = doc.at('/TABLE/TBODY/TR')   #ここで最初の一つを取り出せるかと思ったんです
p doc.xpath(xpath).text()
--------------------

まず、xpath の指定なんですが、
/TABLE/TBODY/TR
 か
/TABLE/TBODY/TR/TD
かで迷います。どちらも出来なんですが(汗)

そして最終的には配列に入れていくわけですから
--------------------
xpath = '/TABLE/TBODY/TR'
vals = []
doc.xpath(xpath).each() do |entry|
  vals << entry.text()
end

p vals[0..30]   #全部出力すると多すぎるのですこしだけ
--------------------
こんなかんじでしょうか?もちろん上も動かないわけですからこれを追加してもダメです。

ご助言いただきたいです。

soichi

In This Thread

Prev Next