cURL то работает, то не работает.

scandal

Новичок
Здравствуйте!
Ниже код, который забирает данные с oftob.com, но не забирает данные с rbc.ru.
Нужно, чтобы с rbc.ru скрипт тоже забирал данные.
Цели учебно-исследовательские.

Подскажите, пожалуйста, почему не работает в случае rbc.ru? И как это можно исправить?
Код:
<?php
$rss_url = 'http://static.feed.rbc.ru/rbc/logical/footer/news.rss';

$ch = curl_init($rss_url);
$fp = fopen("news.xml", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
if(curl_error($ch)) {
    fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
?>
 
Последнее редактирование:

Squats

Новичок
Ну потому что агента тю-тю.
PHP:
$ua = 'Godzilla/42.4 (Gabba Gandalf Client 7.3; C128; Z80) Lord of the RSS Weed Edition (KHTML, like Gold Dust Day Gecko) Chrome/97.0.43043.0 Safari/1337.42';
$rss_url = 'http://static.feed.rbc.ru/rbc/logical/footer/news.rss';
$ch = curl_init($rss_url);
$fp = fopen("oftob.html", "w");
curl_setopt_array($ch, [
    CURLOPT_FILE => $fp,
    CURLOPT_USERAGENT => $ua,
    CURLOPT_HEADER => 0
]);
curl_exec($ch);
if(curl_error($ch)) {
    fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
Решение 2:
PHP:
$ua = 'Godzilla/42.4 (Gabba Gandalf Client 7.3; C128; Z80) Lord of the RSS Weed Edition (KHTML, like Gold Dust Day Gecko) Chrome/97.0.43043.0 Safari/1337.42';
ini_set('user_agent', $ua);
$rss_url = "http://static.feed.rbc.ru/rbc/logical/footer/news.rss";
$xml = simplexml_load_file($rss_url);
var_dump($xml);
 

scandal

Новичок
Всё заработало, когда добавил следующую строку:
curl_setopt( $ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1" );
 

scandal

Новичок
Ну потому что агента тю-тю.
PHP:
$ua = 'Godzilla/42.4 (Gabba Gandalf Client 7.3; C128; Z80) Lord of the RSS Weed Edition (KHTML, like Gold Dust Day Gecko) Chrome/97.0.43043.0 Safari/1337.42';
$rss_url = 'http://static.feed.rbc.ru/rbc/logical/footer/news.rss';
$ch = curl_init($rss_url);
$fp = fopen("oftob.html", "w");
curl_setopt_array($ch, [
    CURLOPT_FILE => $fp,
    CURLOPT_USERAGENT => $ua,
    CURLOPT_HEADER => 0
]);
curl_exec($ch);
if(curl_error($ch)) {
    fwrite($fp, curl_error($ch));
}
curl_close($ch);
fclose($fp);
Решение 2:
PHP:
$ua = 'Godzilla/42.4 (Gabba Gandalf Client 7.3; C128; Z80) Lord of the RSS Weed Edition (KHTML, like Gold Dust Day Gecko) Chrome/97.0.43043.0 Safari/1337.42';
ini_set('user_agent', $ua);
$rss_url = "http://static.feed.rbc.ru/rbc/logical/footer/news.rss";
$xml = simplexml_load_file($rss_url);
var_dump($xml);
Спасибо!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
У нас парсинг сайтов не обсуждается.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну и сделай нормальное API тогда, а не мучай сайт удалением гланд через жопу.

PS: Ок, вернул
 

scandal

Новичок
Ну и сделай нормальное API тогда, а не мучай сайт удалением гланд через жопу.

PS: Ок, вернул
На oftob.com мне на данный момент API не нужен. Я его привел для примера. Чтобы показать, что с него забирать контент получалось, а с rbc.ru не получалось. После того, как добавил CURLOPT_USERAGENT, забрал и с rbc.ru.

Спасибо.
 
Сверху