エロサイトの作り方

2013年11月から勉強しながらエロサイトを作っています。

jQueryでHTMLからRSSフィードのリンクを抽出する方法

まずは先人の知恵をということで、Chrome拡張機能RSS Subscription Extensionから該当ソースを見てみる。

feed_finder.js

// Find all the RSS link elements.
var result = document.evaluate(
    '//*[local-name()="link"][contains(@rel, "alternate")] ' +
    '[contains(@type, "rss") or contains(@type, "atom") or ' +
    'contains(@type, "rdf")]', document, null, 0, null);

意外とシンプル。

XPathでやるならこのまま使えそう。

jQueryセレクタに直す

$('link[rel=alternate][type*=rss],link[rel=alternate][type*=atom],link[rel=alternate][type*=rdf]');

<link rel="alternate">タグはほとんどのブログエンジンで標準出力されるので、これだけでブログなら100%取得できそう。

ブログじゃないサイトは?

よくあるオレオレ実装サイトでは、<link>タグなど使わず<a>タグでRSSへのリンクを張っているだけなのところがある。

そんなサイトには、

$($('a[href*=".xml"],a[href*=".rss"],a[href*=".rdf"]'), ':contains(RSS)');

RSSファイルの拡張子で、かつ、リンク文字にRSSが含まれていたらRSSフィードへのリンクとすれば良さそう。

しかし、オレオレRSSフィードは日付形式が違ったりなど微妙な実装が多いのでいちいち対応するのは面倒な気がする。