Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707

CURL не получает страницу

15.11.2012, 18:30. Показов 9066. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пишу следующий код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$url = "http://yandex.ru/yandsearch?text=запрос&lr=65&numdoc=50&p=0";
$data = "";
         if ($ch = curl_init())
        {
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_HEADER, false);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
            curl_setopt($ch, CURLOPT_USERAGENT, 'PHP');
            $data = curl_exec($ch);
            if (empty($data)) {
                echo "EMPTY DATA<br />";
            } else {
                echo $data;
            }
            //print_r(curl_getinfo($ch));   
            //echo "\n\ncURL error number:" .curl_errno($ch);   
            //echo "\n\ncURL error:" . curl_error($ch); 
            curl_close($ch);
        } else {
            echo 'FAIL';
        }
выводит: "EMPTY DATA"
подскажите, почему не получает страницу?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.11.2012, 18:30
Ответы с готовыми решениями:

CURL не получает страницу
Здравствуйте. Столкнулся с проблемой. Надо спарсить страницу с aliexpress. Вот сама ссылка: Вот как ее показывает браузер: ...

мой CURL получает ответ 503, В то время как их AJAX запрос выдает другие ответы
Дано: Вот сайт - http://imhonet.ru/ Сверху есть строка поиска, которая при изменении строки поиска, отправляет POST запросы по...

CURL как перейти на страницу
вот мой код &lt;?php include 'simple_html_dom.php'; $ch = curl_init('http://xn--c1adbibb0aykc7n.xn--p1ai/bronirovanie.html'); ...

30
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
22.11.2012, 14:22  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от basili4 Посмотреть сообщение
blackbanny, писали же выше что есть сервис для работы роботов. Там вполне приличные условия 1000 запросов в день.
я тоже писал выше:
Цитата Сообщение от blackbanny Посмотреть сообщение
да, там предлагают использовать XML сервис, но я парсю позиции сайта по запросам, а в их XML эти данные отстают от реальных данных...
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.11.2012, 14:28
blackbanny, CURL ведь может получать и передавать COOKIE. Вы просто вместе с запросом передавайте COOKIE Яндексу и всё.
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
22.11.2012, 18:03  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
blackbanny, CURL ведь может получать и передавать COOKIE. Вы просто вместе с запросом передавайте COOKIE Яндексу и всё.
я сделал работу с куками после того, как пост создал:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/cookies.txt'; 
        $ch = curl_init($url); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_HEADER, 1); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_REFERER, "http://www.yandex.ru");
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"); 
        curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file); 
        curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file); 
        $codePage = curl_exec($ch); 
        curl_close($ch);
        return $codePage;
все равно яндекс палит меня, как робота
сейчас прикручиваю распознавание капчи через antigate
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
22.11.2012, 20:28
blackbanny, я просмотрел как там можно реализовать.. Значит схема такая:
1) Вы посылаете запрос на Яндекс.
2) Потом проверяете полученный HTML код, если там вывелась форма "Ой!", то вы парсите эту форму, вытягивая из неё содержимое скрытых инпутов.
3) Выдаёте на экран капчу и форму (форму свою надо написать).
4) Затем в форму вводится капча, вы с помощью неё генерируете такую ссылку:
http://yandex.ru/checkcaptcha/?rep=тут код, который ввели в форму&key=тут key, который вытащите из формы "Ой!"&retpath=тут retpath, который вытащите из формы "Ой!"
.
Делаете запрос по этой ссылке, сохраняете COOKIE в файл, а потом спокойно делаете запросы на Яндекс до тех пор, пока он снова не пронюхает, что к нему злой робот обращается
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
23.11.2012, 07:14  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
blackbanny, я просмотрел как там можно реализовать.. Значит схема такая:
1) Вы посылаете запрос на Яндекс.
2) Потом проверяете полученный HTML код, если там вывелась форма "Ой!", то вы парсите эту форму, вытягивая из неё содержимое скрытых инпутов.
3) Выдаёте на экран капчу и форму (форму свою надо написать).
4) Затем в форму вводится капча, вы с помощью неё генерируете такую ссылку:
.
Делаете запрос по этой ссылке, сохраняете COOKIE в файл, а потом спокойно делаете запросы на Яндекс до тех пор, пока он снова не пронюхает, что к нему злой робот обращается
вчера утром сделал это с разгадыванием капчи через antigate
индусы довольно быстро и правильно разгадывают
хотя сегодня пару раз выдали буквы, а не цифры, благо стоимость за разгадывание ничтожно мала
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.11.2012, 16:16
blackbanny, но, насколько я понимаю, скрипту придётся при КАЖДОМ запросе разгадывать капчу. А что я выше написал - там не нужно каждый раз.
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
24.11.2012, 11:38  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
blackbanny, но, насколько я понимаю, скрипту придётся при КАЖДОМ запросе разгадывать капчу. А что я выше написал - там не нужно каждый раз.
не придется, если один раз отгадываешь, то потом долго капчане появляется

Добавлено через 18 часов 27 минут
Lyodik, теперь проблема в том, скрипт, когда много данных выдает
Code
1
504 Gateway Time-out
в .htaccess ставил php_value max_execution_time 900, но не помогает
параметры ngix на хостинге менять не разрешают
подскажите, что еще можно сделать?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.11.2012, 12:01
blackbanny, попробуйте оптимизировать код, медленные функции замените на более быстрые и т.д. Можете код сюда выложить, форучане помогут оптимизировать.
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
24.11.2012, 12:23  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
blackbanny, попробуйте оптимизировать код, медленные функции замените на более быстрые и т.д. Можете код сюда выложить, форучане помогут оптимизировать.
да дело в том, что и оптимизировать нечего, просто у сайта, например, есть 20 запросов, по каждому я проверяю позицию, если капча, то посылаю запрос на антигейта, время ответа с антигейта около 10 секунд, вот и получается, что время выполнения скрипта зависит от ответа с антигейта и конечно от ответа яндекса, т.е. как быстро получаю страницу с выдачей...
я так понимаю, что время выполнения скрипта на хостинге стоит 30-60 секунд(могу ошибаться), вот и как сделать так, чтобы такая ошибка не вываливалась до тех пор пока, скрипт не завершит работу?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.11.2012, 13:31
Ну если
Цитата Сообщение от blackbanny Посмотреть сообщение
параметры nginx на хостинге менять не разрешают
Можно ещё попробовать не использовать antigate, а использовать метод, какой я описывал немного выше. Время выполнения скрипта сократится.
0
130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707
24.11.2012, 14:31  [ТС]
Цитата Сообщение от Lyodik Посмотреть сообщение
Ну если

Можно ещё попробовать не использовать antigate, а использовать метод, какой я описывал немного выше. Время выполнения скрипта сократится.
в вашем варианте придется вручную забивать код, а меня так не устраивает...
скрипт будет потом с помощью крона запускаться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2012, 14:31

CURL не хочет подгружать страницу
Перепробовал практически все наборы опций курла ... Есть ссылка ... Страница реально существет ...но CURL её не видит...

Как считать страницу через curl?
Здорова! Есть код для считывания страницы через прокси &lt;? error_reporting(E_ALL &amp; ~E_NOTICE); //создаём функцию function...

Сервер не может получить страницу (Curl, file_get_contents.)
Вообщем написал некий скрипт, работать работает и сейчас на локалке тоже, и работал на сервере, но в один прекрасный момент перестал...

Сервер не может получить страницу (Curl, file_get_contents)
привет. &lt;? $unvan_smert=&quot;http://google.com&quot;; $curl_smert = curl_init(); curl_setopt($curl_smert, CURLOPT_URL, $unvan_smert); ...

Авторизация с curl работает, как получить страницу в переменную?
есть скрипт some.php вначале в нем идет авторизация на каком-то сайте через curl, и проходит успешно. далее хочу воспользоваться поиском,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru