Анализ URL-адреса RSS-канала не возвращает результатов в браузере и CURL, но правильные результаты возвращаются в программе чтения RSS-каналов. - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь сделать парсер для Kijiji RSS-канала. У меня проблема в том, что по какой-то причине их URL-адрес RSS не возвращает результатов в браузере или в моем скрипте с использованием CURL. Однако, если я проанализирую URL с помощью правильного RSS Reader, он будет работать отлично.

Вот пример URL-адреса https://www.kijiji.ca/rss-poa/u1001906046 Он должен возвращать следующие результаты в виде RSS-канала https://www.kijiji.ca/o-tork-parts/1001906046. Проблема в том, что когда я загружаю URL-адрес RSS в браузер, он не возвращает списки объявлений. Когда я загружаю RSS-адрес в https://codebeautify.org/rssviewer, я вижу все результаты.

Моя первоначальная мысль, что я должен передать правильные заголовки Accept и User-Agent. Я создал свою собственную страницу RSS, чтобы выяснить, какие заголовки Code Beautify проходит. Я получил Accept: */* и пустой пользовательский агент. Я использовал это с моим кодом, но все еще получал ту же страницу без списков.

Мой код выглядит так

$url = "https://www.kijiji.ca/rss-poa/u1001906046";

$headers = array(
    'Accept: */*',
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_USERAGENT,'');
$result = curl_exec($ch);
curl_close($ch);

echo $result;

Что я делаю не так?

...