Получить исходный код страницы CURL

Статус
В этой теме нельзя размещать новые ответы.

OnArs

Гуру форума
Регистрация
30 Авг 2008
Сообщения
258
Реакции
74
Здравствуйте!


Помогите пожалуйста, в CURL'е не рабираюсь, но именно с помощью него нужно получить исходный код заданой страницы.

Ни каких данных на страницу передавать не нужно, просто получить её исходный код.


Заранее благодарен! :ay:
 
А без всякого курла просто нельзя открыть эту страницу в браузере и через вид--исходный код страницы посмотреть HTML или яваскрипт код...:) или $contents = file_get_contents($url);
Или вы думаете что через сокеты сможете увидеть код серверного скрипта .то могу вас разочаровать...это невозможно ( или надо ломать сервер) ...тк если скрипт написан на серверном языке типа php.. то он расположен на сервере и формирует код который выводится в браузер..
 
$url = 'http://google.com';

$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s

$document = curl_exec($ch);

echo htmlcpesialchars($document);
 
А без всякого курла просто нельзя открыть эту страницу в браузере и через вид--исходный код страницы посмотреть HTML или яваскрипт код...:) или $contents = file_get_contents($url);
Или вы думаете что через сокеты сможете увидеть код серверного скрипта .то могу вас разочаровать...это невозможно ( или надо ломать сервер) ...тк если скрипт написан на серверном языке типа php.. то он расположен на сервере и формирует код который выводится в браузер..
Вы такой умный! Но мозгов не хватает понять что через file_get_contents() не все сервера/скрипты/движки дадут посмотреть исходный код и будут ругаться, например:
"Убедитесь что Ваш браузер поддерживает cookie"

$url = 'http://google.com';

$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL, $url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s

$document = curl_exec($ch);

echo htmlcpesialchars($document);

Примного благодарен! :thenks:
 
Простите, что влезаю в вашу высокоинтеллектуальную беседу про мозги и их отсутствие, но топикстартер явно не очень хорошо представляет себе, что такое cookies. Ни file_get_contents(), ни приведённый выше пример с curl вообще к cookies отношения не имеет никакого. И если сайт "заточен" на принудительную проверку cookies, то "Убедитесь что Ваш браузер поддерживает cookie" вы получите в обоих случаях. Узнать, поддерживает ли браузер cookies или нет возможно только при повторном запросе к серверу. Такова суть cookies - при первом запросе ваш браузер их получает от сервера, а при втором - отправляет обратно на сервер. Разумеется, при первом запросе браузер вообще не имеет никаких cookies, ибо он их с сервера ещё ни разу не получал.

Способ "быстро" узнать, включены ли cookies на стороне клиента - это либо редирект через хедеры (HTTP 301/302), либо редирект через <meta> или jscript, либо фрейм, либо ajax-запрос.
file_get_contents(), хоть и поддерживает редиректы, но не поддерживает cookies. Приведённый пример с curl не включает в себя ни поддержку редиректов, ни поддержку cookies. Все остальные способы (meta/jscript/frame/ajax) по понятным причинам вообще не обсуждаются.

Таким образом, мы имеем следующее.
1) Если это curl, то надо включать поддержку редиректов и cookies (FOLLOWLOCATION/COOKIEFILE/COOKIEJAR).
2) Как ни банально звучит, но самое надёжное - это действительно посмотреть исходный html через браузер. Будьте уверены, он обработает все скрипты, фреймы и иже с ними.

Удачи.

P.S. В догонку - file_get_contents("http://...") будет работать только если в вашем php включено allow_url_fopen.
 
1) Если это curl, то надо включать поддержку редиректов и cookies (FOLLOWLOCATION/COOKIEFILE/COOKIEJAR)
Чуть позже после написание последнего здесь сообщения столкнулся с этой проблемой, прикрутил, большое спасибо! :ay:

2) Как ни банально звучит, но самое надёжное - это действительно посмотреть исходный html через браузер. Будьте уверены, он обработает все скрипты, фреймы и иже с ними.

Хотите мне помоч? Выдерните руками исходный код более тысячи страниц?
 
Научитесь писать точное ТЗ...
 
Из-за чего может не роботать этот код? Может потому, что я использую его на локальном компютере? Также пробывал так:
PHP:
<?php
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>
Результат идентичен. Подскажите что не так я делаю.
 
Это в phpinfo()? Какое название строки, ато curl и ему подобного я не нашел.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху