130 / 117 / 30
Регистрация: 14.11.2010
Сообщений: 707

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

15.11.2012, 18:30. Показов 8961. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru