lang
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html> 3 <body> 4 <div id="container"> 5 <div class="w980"> 6 <div id="bbin" class="clearfix"> 7 <div class="left1"> 8 <div class="right2"> 9 <div id="sheet" class="right2in"> 10 <div class="paginate"> 11 <h1 class="clearfix"> 12 <div class="fkd"></div> 13 <div class="entrybody"> 14 <div class="entrybody"> 15 <div class="entrybody"> 16 . 17 . 18 .
RubyのgemであるNokogiriを使い、以上のようなHTMLから一番下の<div class="entrybody">のXpathをすべて取得したいです
自分で調べたところ、次のような記述で実現できるかと思ったのですがエラーがでてしまいました
lang
1require 'open-uri' 2require 'nokogiri' 3 4url = "ほげ" 5 6charset = nil 7html = open(url) do |f| 8 charset = f.charset 9 f.read 10end 11 12doc = Nokogiri::HTML.parse(html, nil, charset) 13body = doc.xpath("/html/body/div[1]/div/div[2]/div/div[1]/div[3]/div/div[@class="entrybody"]/") 14p body.size
エラー
"syntax error, unexpected ')', expecting end-of-input"
このXpathはFireFoxのアドオンであるFirePathを使い、はじめの<div class="entrybody">を取得し、それを複数選択できるよう自分で書き直しました
以上のプログラムにあるxpathではなく、FirePathで取得した以下のxpathではエラーにはなりませんでした
/html/body/div[1]/div/div[2]/div/div[1]/div[3]/div/div[3]/
また、上記のHTMLはXpath取得に必要だと思う部分のみ書き出しています
わかる方いましたらご教示お願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/21 15:11
2015/05/21 15:13