|
0 / 0 / 0
Регистрация: 08.05.2017
Сообщений: 3
|
|||||||||||||
CURL, промежуточная страница с редиректом на 40408.05.2017, 19:37. Показов 3056. Ответов 5
Всем доброго времени суток.
Есть ресурс: disk-space.ru Открываем через любой браузер: попадаем на промежуточную страницу "Идет загрузка страницы, подождите" с таймером 4 сек. После чего нас успешно редиректит на сайт. Я в сетевых технологиях не шарю, php только осваиваю параллельно с поставленной задачей, соответственно и cURL для меня механизм далеко не освоенный. Хотя попарился я со своей задачей изрядно, решаю я ее уже битый день. Многому научился, но проблема не сдвигается с места!! Как можно было уже догадаться, проблема: не могу забрать целевую страницу с этого disk-space.ru!! Насколько я понял, cURL применяют с имитацией заголовков запроса браузера. Есть подобная проблема, которая решена, на этом же форуме по ссылке Не достучаться до сайта используя Curl. Ошибка 404 not found/ Не нашел подробную информацию в сети, как грамотно составлять запросы, имитирующие браузерные, от и до, до достижения всегда необходимой страницы. Часто, видимо, бывает достаточно стандартного cURL запроса с одной лишь опцией URL. Либо вообще обходятся известной функцией - file_get_contents($url). По ссылке на подобную проблему выше: там все просто, нет ПРЕДВАРЯЮЩЕЙ страницы, дополнительных редиректов. Именно этим осложняется мой случай. Даже на основную страницу - http://disk-space.ru - попадаешь через промежуточную "Идет загрузка" с таймером - ЕСЛИ НЕТ КУКОВ (о куках далее). Простым cURL запросом без лишних опций мы получаем эту промежуточную страницу. cURL запрос сделан и завершен. А полученная страница по истечении таймера просто редиректует нас на ОТНОСИТЕЛЬНУЮ ссылку "/cdn-cgi/l/chk_jschl...", где вместо многоточия идут ключи с ответами, отправленные из формы. То есть промежуточная страница имеет скрытую форму с уже сгенерированными двумя случайными значениями для инпутов name=value, а также есть javascript для таймера и javascript, генерирующий третье случайное число, которое идет как value для третьего инпута формы без предустановленного value, после чего функция джаваскрипта f.submit() отправляет форму GET-запросом, и мы попадаем на что-то вроде: "/cdn-cgi/l/chk_jschl?jschl_vc=e6b053d3854b567b3dbba 2261929eaaf&pass=1494161963.724-KX8vlWihJr&jschl_answer=1129". А так как такой страницы нет на локалхосте или на удаленном хостинге, мы получаем ошибку 404. Возникает понимание, что нужен второй cURL запрос. Я сделал 2 php-страницы. На первой странице происходит первый cURL запрос, получаем страницу ожидания. Также здесь я через preg_replace заменил относительный адрес (action отправочной формы) - /cdn-cgi/l/chk_jschl - на адрес своей второй страницы. Это сделано для удобства получения целого адреса со всеми ключами - переход на 2ю страницу, и я достаю его из браузерной строки (т.к. метод GET) посредством $_SERVER['REQUEST_URI'] с удалением приставки названия моей второй страницы. Здесь же я делаю второй запрос cURL, подробный, с множеством опций и браузерными заголовками. Я через Firefox в консоли Firebug посмотрел второй запрос (полный адрес со всеми ключами) и сделал точь-в-точь. УВЫ, целевая страница так и не достается мне!!! Для первой своей страницы переписывать заголовки с Firebug'а не стал. По кукам: при первом обращении, как я уже сказал, мы попадаем на промежуточную страницу ожидания со скрытой формой отправки методом GET на относительный адрес. И получаем первый кукис "cfduid". В момент отправки формы происходит переход по адресу "/cdn-cgi/l/chk_jschl..." со статусом 302 Moved Temporarily (Firebug), сервак делает нам второй кукис "cf_clearance", затем редирект на целевой адрес - и вот мы на нужной странице! Это через браузер. Что у меня: вторая страница делает запрос, и тут у меня было 2 варианта: либо пустая страница, либо СНОВА промежуточная страница ожидания - и вылет на поганую 404. Если FOLLOWLOCATION выставить false, то белая страница с жирным уведомлением "302 Moved Temporarily"; в этом случае и в первом варианте (пустая страница) как будто бы наблюдается какой-то успех, однако второго кукиса не создается. Приведу HEADER промежуточной страницы при первом запросе:
При втором запросе во втором моем варианте (когда повторно получаю страницу ожидания и вылетаю на 404) HEADER следующий:
Проверяю я в основном со своего компа (Denwer, "localhost/..."). Есть хостинг, там в принципе то же самое, но геморройно постоянно заливать страницы и редактировать. В начале темы привел пример подобной головной боли, но там все гораздо проще, человеку сказали в заголовках убрать User-agent и Referer и сделать его опциями cURL-запроса - и автор говорит, что все получилось! Я же что только ни подставлял, ни мешал в значениях. Вплоть до того, что сносил/восстанавливал крайний слеш для какого-нибудь там реферера... Я просто исчерпал весь свой опыт в этой сфере. Заголовки для браузера для меня стали в новинку, когда я продвигался в решении проблемы. В Firebug со страницы ожидания (статус 503) происходит переход на адрес готового вида со всеми ключами: "http://disk-space.ru/cdn-cgi/l/chk_jschl?jschl_vc=8265cdd0fbcb4f62679e2 02229b76997&pass=1494153842.072-lzRbZ7x7bB&jschl_answer=447448". Статус - 302. Браузер отдает среди прочих заголовков заголовок Cookie (первый кукис), а сервер ему дает "Location: http://disk-space.ru/" и генерит второй кукис - и браузер переходит на главную страницу сайта. Аки "фейс-контроль прошел". В чем у меня тогда дело-то??? Я и в первом, и во втором запросах проставлял опции COOKIEJAR и COOKIEFILE. Получаю только первый кукис - при первом обращении (страница ожидания). Второй кукис не генерировался ни в одном из моих случаев. Я даже, усомнившись в действии COOKIEJAR и COOKIEFILE, замутил код вытаскивания строки кукиса из файла для передачи ее в заголовках по заголовку Cookie (в Firebug есть такой заголовок во втором обращении). В общем, кто что подскажет? Речь идет о любой странице сайта disk-space.ru, я пытаюсь забрать главную, хотя цель другая, но получить главную - как простейший случай для начала. Вот мои две несчастные страницы: Первая
Вторая
Неужто мой случай - самый сложный в опыте парсинга сайтов с cURL? Сам ресурс, на который ломлюсь, что характерно, довольно халявно смотрится выполненным и обладает не лучшей репутацией. Буду очень благодарен за помощь.
0
|
|||||||||||||
| 08.05.2017, 19:37 | |
|
Ответы с готовыми решениями:
5
Промежуточная страница
Страница 404 |
|
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
|
|
| 09.05.2017, 19:23 | |
|
Сначала нужно получить разрешение владельца сайта на применение парсера curl
0
|
|
|
0 / 0 / 0
Регистрация: 08.05.2017
Сообщений: 3
|
|
| 14.05.2017, 00:03 [ТС] | |
|
А разве cURL не является той самой технологией, которая спокойно минует всякие ограничения владельцев сайтов?
0
|
|
|
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
|
|
| 14.05.2017, 20:45 | |
|
Если он поставил защиту, значит не хочет, чтобы его сайтом пользовались роботы. Насилие в отношении других людей, а также содействие насилию может привести к заболеваниям.
0
|
|
|
0 / 0 / 0
Регистрация: 08.05.2017
Сообщений: 3
|
|
| 14.05.2017, 23:01 [ТС] | |
|
plohoyav, насилие может привести к заболеваниям? Серьезно? К каким, например?
Если нечего дельного сказать по сабжу, то, как правило, проходят мимо. Но ты молодец, что написал. Возможно, еще не все так запущено, и визит к психиатру может спасти от дальнейшего развития заболевания межушного нервного узла. Скорее в ПНД! Если шиза, то еще немного, и роботы начнут совершать насилие в отношении людей, и никакая защита не спасет роботов от неизбежных заболеваний! Бедные роботы!... Ник наверно тоже неспроста, плохо наяву, когда шиза, нечего и добавить тут. Побольше галоперидола, и сон, сон, целебный сон... Психиатр в общем разберется там.
0
|
|
|
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
|
|
| 15.05.2017, 07:46 | |
|
Например, люди, которые оказывают давление на окружающих, сами страдают от повышенного артериального давления.
Согласно закона человек обязан помогать окружающим, в частности тонущим. Уши психиатор не лечит, уши лечит послушание окружающих. Сон не является целебным, по статистике люди, спящие 12 часов в день, живут на 10-15 лет меньше остальных. При входе на сайт http://disk-space.ru/ после счётчика происходит перенаправление и выводится ошибка Error establishing a database connection Видимо хостинг не справляется с нагрузкой.
0
|
|
| 15.05.2017, 07:46 | |
|
Помогаю со студенческими работами здесь
6
Страница 404 Не достучаться до сайта используя Curl. Ошибка 404 not found/ Возвращение 404 ошибки от ссылки Yandex через CURL Страница ошибки 404 Страница не найдена 404 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|