4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 解決策じゃないですが・・・。

    telnetで

    http://rss.rssad.jp/rss/nifty/*********?rss
    http://rss.rssad.jp/rss/nifty/*********
    http://*********.cocolog-nifty.com/blog/index.rdf

    アクセスしてみましたが、「現在システムメンテナンス中です。」と帰ってきますね。
    #RSSリーダーで見ると正常

    他Blogで試してみたらRSSの内容が帰ってきましたので、
    ココログが何か規制しているのかもしれませんね。

    詳しい人のレスに期待。

    トピック投稿者 dean-toto

    (@dean-toto)

    to masaru様

    レスありがとうございます。

    >現在システムメンテナンス中です。

    そうですかっ!
    メンテ中だったら見られなくても仕方ないですが・・・
    8/19 18:00PM現在、ココログのブログは表示されません・・・。
    どちらにしても、ココログ側の問題なのでしょうか?

    引き続きご意見お待ちしております。

    トピック投稿者 dean-toto

    (@dean-toto)

    ソースコードを読み、RSSを取得するための仕組みを(今更ながら)勉強しました。
    そこでココログの場合、fetch_rss($uri)で取得できているのかどうか?どんな値が入っているのかどうか?を調べてみました。

    まず素材として。ブログの女王(簡単にたどり着いたので)真●●をりさんのブログ:RSSで実験しました。

    1.まずココログHELPの解説では、RSSのURIは
    http://example.cocolog-nifty.com/blog/index.rdf
    ブログURLの後ろにindex.rdf をつけたものと解説されています。
    (ココログHELP) http://support.cocolog-nifty.com/howto/2006/03/rss_0139.html

    ですが、真●●をりさんのRSSフィードのURIは
    http://rss.rssad.jp/rss/nifty/manabe ・・・(1)
    と出てきます。
    当人のブログURL+index.rdf では、フィードの内容が見られませんでした。
    と言う事で(1)を設定してみます。

    2.新着を表示するソースコードの要所にecho で適当な項目内用を表示するように追加します。

    $rss_arr = array(
     ’http://rss.rssad.jp/rss/nifty/manabe’ // ココログ
    );

    //表示件数
    $num = 20;

    foreach($rss_arr as $uri)
    {
    $rss = fetch_rss($uri);

    $title = $rss->channel[‘title’];
    $link = $rss->channel[‘link’];

    // デバッグ用に表示(A)
    echo “Title=”.$title.””;
    echo “link=”.$link.””;
    $tcnt=0;

    foreach($rss->items as $item)
    {
    $item_title = $item[‘title’];
    $item_link = $item[‘link’];
    $item_date = $item[‘pubdate’];
    $out_item_date = date(‘Y年n月j日’, strtotime($item_date));

    // デバッグ用に表示(B)
    $tcnt++;
    echo “item_title”.$ycnt.”=”.$item_title.” / “.$out_item_date.””;

    //これより以下は元ソースのままです。
    $out_item = ‘<dt>
    ‘ . $item_title . ‘
    </dt>
    <dd style=”font-size:77%;”>
    ‘ . $title . ‘
    </dd>
    <dd style=”font-size:77%;”>’ . $out_item_date . ‘</dd>’;

    $unix_time = date(‘U’, strtotime($item_date));
    $item_arr[$unix_time] = $out_item;
    }
    }

    //ソート
    krsort($item_arr);

    //出力
    echo ‘<h2>新着’ . $num . ‘件(RSSを使って外部ブログを取得のテスト)</h2>’;

    以下省略・・・

    こんな感じで・・・。

    3.結果

    Title=眞鍋かをりのココだけの話 powered by ココログ
    link=http://manabekawori.cocolog-nifty.com/blog/
    item_title1=夢をありがとう / 1970年1月1日
    item_title2=四国の連峰そびらにおいて / 1970年1月1日
    item_title3=地震コワい / 1970年1月1日
    item_title4=プロアクティ部 / 1970年1月1日
    item_title5=ありがとう / 1970年1月1日
    item_title6=羊蹄山 / 1970年1月1日
    item_title7=ポスター掲載の件 / 1970年1月1日
    item_title8=THE ICE / 1970年1月1日
    item_title9=オシリーナを超えた!魅惑の完熟ボディ生尻セクシー / 1970年1月1日
    item_title10=うなぎ犬 / 1970年1月1日
    item_title11=に、に、妊娠!? / 1970年1月1日
    item_title12=日テレのうめ / 1970年1月1日
    item_title13=祐天寺 ル・サンク / 1970年1月1日
    item_title14=ネルソン / 1970年1月1日
    item_title15=昔話 / 1970年1月1日

    日付がおかしい事が解りました。
    記事のタイトルは間違いなく新着タイトルです。
    表示されないのではなく、新着の上位にソートされないわけですね。

    アメブロ、YAHOO、Livedoor が正しく表示されることを考えると、ココログだけ日付の取得の仕方が違うのでしょうか?

    トピック投稿者 dean-toto

    (@dean-toto)

    追記です。

    ふと気づきました。
    日付だけの問題ではないような気がします。
    先の投稿でのテストでは、1つのブログRSSだけを素材にしたので、日付が古くても、新着が表示されるはず・・・

    ですが、実際の結果は・・・

    item_title=祐天寺 ル・サンク / 1970年1月1日
    item_title=ネルソン / 1970年1月1日
    item_title=昔話 / 1970年1月1日

    新着20件(RSSを使って外部ブログを取得のテスト)

    で終わっていました。
    一覧表示が出ていません。

    この事から何か解る事は無いでしょうか?

    (伏字をする必要があるのか解りませんでしたが、意味を成していませんでしたね)

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「RSSを使って他ブログを新着順に並べる」には新たに返信することはできません。