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

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

15.11.2012, 18:30. Показов 9209. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru