reddit RSSフィードは、HTTPを通じて要求されたときにより少ないアイテムを返しますか?
-
19-09-2019 - |
質問
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からロードしていたものとは異なることです。
所属していません StackOverflow