WebトピッコンテンツへスキップWebトピッWeb・IT関連のニュース、ツールの紹介・使い方について書いています。Page」でXpathを指定する際に、要素に複数のclassが指定されている場合とidやclass属性が指定されていない場合の対処法について解説します。Page」の基本的な使い方を参照してください。複数のクラス属性が指定されている場合たとえば、以下のようなHTML文書があるとします。bar”]上記のような指定の仕方を考えるかもしれません。残念ながらPipesでは、どちらもエラーが出てうまく取得できません。このように複数のクラスが指定さている場合は、Xpathにあらかじめ用意されている関数を使います。contains()という関数です。//div[contains(@class,”bar”)]と指定すればOKです。実際にやってみましょう。Collectionという映画サイトにあるNews一覧ページのRSSフィードを作成してみたいと思います。取得範囲を決める「Firebug」やChrome「Webデベロッパーツール」の「要素の検証」を使います。clear">という要素を指定すればうまくいきそうです。今回は画像や日付は不要なので、このdiv要素の直下であるa要素のみを指定したいと思います。いう文字列含まれている要素の子供のa要素を指定すればいいので//div[contains(@class,”kiji”)]/aと指定します。Page」モジュールには以下のように指定します。チェックRenameモジュールについては割愛します。今回の完成形はこちらです。取得したい要素の範囲内にid属性やclass属性が指定さていない場合は、「番号」を使うとうまくいくケースがあります。実際のページで考えてみましょう。東スポWebの人気ランキング一覧にアクセスしてください取得範囲を決めるこのページには6つのランキングが用意されています。Firebugなどで調べると、それぞれがol要素でマークアップされていることがわかります。PipesでRSSフィードを作成する場合は、ol要素の子孫にあたるa要素を指定すればうまくいきそうです。6つのランキングのうち「エンタメ人気ランキング」のみを取得したい場合はどうすればいいでしょうか?//ol/li/aと指定した場合は、6つのランキングすべてが取得されてしまいます。「総合人気ランキング」や「スポーツ人気ランキング」も余計に含まれてしまうわけです。このようなときに便利なのが「番号」です。以下のように書き換えます。//ol[4]/li/aと指定すると、4番目に登場したol要素の子孫のa要素のみに限定して取得することができます。Page」モジュールには以下のように指定します。チェックRenameモジュールについては割愛します。今回の完成形はこちらです。コメントをキャンセルメールアドレスが公開されることはありません。