Reddit RSS -канал возвращает меньше элементов по запросу через HTTP?

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

Вопрос

Я пытаюсь прочитать данные из RSS -канала, который имеет 25 элементов. Когда я запрошу файл RSS через HTTP, он говорит, что есть только 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');

Я также пробовал RSS -каналы из других подредедитов с тем же результатом.

Это было полезно?

Решение

Я вижу, в чем сейчас проблема ... если вы посетите подобный Reddit /r/программирование/ И перейдите на вкладку «Новые», чтобы увидеть новые представления, есть два варианта сортировки. Первый вариант-«Rising», который отображается только перспективные записи, альтернативный заказ сортировки «новый».

Поскольку я выбрал «новый» порядок сортировки в моем браузере, он сохранил печенье и использовался в качестве порядок сортировки по умолчанию. Тем не менее, доступ к странице через код все еще использовал порядок сортировки по умолчанию, который вернул переменную сумму результатов.

Я решил проблему, добавив строку запроса заказа сортировки к URL -адресу запроса: http://www.reddit.com/r/programming/new/.rss?sort=new

Другие советы

Если бы у него были проблемы с загрузкой корма, это, вероятно, выпустило бы какое -то предупреждение.

Прямо сейчас ваш пример кода для канала Reddit показывает, что он имеет 14 элементов. Количество элементов в этом канале не является постоянным. Таким образом, проблема в том, что ваша локальная копия отличается от той, что вы загружали из Reddit.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top