reddit RSSフィードは、HTTPを通じて要求されたときにより少ないアイテムを返しますか?

StackOverflow https://stackoverflow.com/questions/1898654

質問

25個のアイテムがあるRSSフィードのデータを読み取ろうとしています。 HTTPを介してRSSファイルを要求すると、20個しかないと表示されます。

function test($location)
{
    $doc = new DomDocument();
    $doc->load($location);
    $items = $doc->getElementsByTagName('item');
    return $items->length;
}

// Prints 20
echo test('http://www.reddit.com/r/programming/new/.rss?after=t3_');

// Prints 25
echo test('programming.xml');

他のsubredditsからのRSSフィードも試してみましたが、同じ結果を得ました。

役に立ちましたか?

解決

私は問題が今何なのかわかります...あなたがサブレッドディットのように訪問した場合 /r/プログラミング/ 「新しい」タブに移動して、最新の提出物を確認するには、2つのソートオプションがあります。最初のオプションは「ライジング」です。これは、新進気鋭のエントリのみを表示するだけで、代替ソート順は「新しい」です。

ブラウザで「新しい」ソートオーダーを選択したので、Cookieを保存し、その後デフォルトのソートオーダーとして使用されました。ただし、コードを介してページにアクセスすると、デフォルトのソート順序がまだ使用されていたため、変動量の結果が返されました。

ソートオーダークエリ文字列をリクエストURLに追加することにより、問題を解決しました。 http://www.reddit.com/r/programming/new/.rss?sort=new

他のヒント

フィードのロードに問題がある場合は、おそらく何らかの警告が発生するでしょう。

現在、Redditフィードのサンプルコードは、14個のアイテムがあることを示しています。そのフィード内のアイテムの数は一定ではありません。したがって、問題は、あなたのローカルコピーがRedditからロードしていたものとは異なることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top