3 / 3 / 0
Регистрация: 08.08.2014
Сообщений: 214

Авторизация на сайте, а затем парсинг, как сделать?

30.12.2014, 13:11. Показов 17028. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте

Столкнулся с такой проблемой, пишу парсер товаров с сайта, но цены на нем отображаются лишь только при авторизации на нем.

Как мне сначала авторизоваться, а потом уже начать парсить???
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2014, 13:11
Ответы с готовыми решениями:

Авторизация на сайте, Java парсинг
Задача парсить один сайт(не с интернета, наш корпоративный, к сожалению к базе не имею доступа, поэтому придется парсить) В общем данные...

Авторизация на сайте через delphi 7 как?
Авторизация на сайте через delphi 7 как? Помогите, все перепробовал, и не выходит. Помогите пожалуйста, как его сделать нормально и что...

Авторизация на сайте и получение данных из личного кабинета на сайте
В общем, проштудировав три справочника за неделю и полазав в интернете, кроме как опухнувшего мозга ничего не получил.. В общем, есть...

9
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.12.2014, 13:23
Цитата Сообщение от zmanz Посмотреть сообщение
Как мне сначала авторизоваться
Посмотрите, куда идёт запрос при отправке формы входа. Затем с помощью CURL подделайте запрос. Сохранять и передавать cookie в CURL нужно, указав настройки CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR.
0
3 / 3 / 0
Регистрация: 08.08.2014
Сообщений: 214
30.12.2014, 13:53  [ТС]
lyod, А как посмотреть куда идет запрос при отправке формы данных? Я так понимаю мне нужно там авторизоваться и посмотреть куку?
Ну а что такое CURL буду сейчас читать ))
0
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
30.12.2014, 14:57
Цитата Сообщение от zmanz Посмотреть сообщение
А как посмотреть куда идет запрос при отправке формы данных? Я так понимаю мне нужно там авторизоваться и посмотреть куку?
Ну а что такое CURL буду сейчас читать ))
Открой браузер хром. Открой страницу авторизации. Нажми F12. Перейди на вкладку "network". Поставь галочку "preserve log". Нажми кнопку "record network log". Введи логи и пароль. Нажми в браузере кнопку "войти". Потом останови запись лога. Найди post-пакет. Всё.

Теперь надо написать скрипт, который отправит на сервер точно такие же заголовки.
0
3 / 3 / 0
Регистрация: 08.08.2014
Сообщений: 214
02.01.2015, 20:37  [ТС]
Сделал все как Вы написали, post файлов там много, но я думаю что этот
Что именно нужно отсюда передавать в заголовок??? И можно ли как то передать без CURL потому как библиотеку подключать не очень хочется да и надо то мне один раз авторизоваться спарсить цены в файл и все.
Миниатюры
Авторизация на сайте, а затем парсинг, как сделать?  
0
3 / 3 / 0
Регистрация: 08.08.2014
Сообщений: 214
03.01.2015, 19:34  [ТС]
Вот нашел код, в него нужно подставить данные из моего скриншота чтобы он заработал, у меня не получается сделать, после отправки правильных заголовков с авторизацией, вот на этой странице должны отображаться цены http://republika-woman.ru/magazin/folder/platya. Помогите пожалуйста подставить так чтобы заработало.
PHP
1
2
3
4
5
6
7
8
9
$ch =  curl _init();
 curl _setopt($ch, CURLOPT_URL, 'http://republika-woman.ru/magazin/folder/platya');
 curl _setopt($ch, CURLOPT_HEADER, false);
 curl _setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl _setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
 curl _setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
 curl _setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$data =  curl _exec($ch);
 curl _close($ch);
Добавлено через 19 часов 13 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$url = 'http://republika-woman.ru/magazin/folder/platya';   // URL сайта на котором будем авторизоваться 
$urlTo = 'http://republika-woman.ru/user';   // URL на которой будем слать POST данные
$login = '******'; 
$pass = '******';
$post = 'mode=login&login='.$login.'&password='.$pass;
 
$ch = curl_init();                              // Инициализируем сеанс CURL
curl_setopt($ch, CURLOPT_URL, $url);            // Заходим на сайт
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Делаем так, чтобы страница не выдавалась сразу в поток, а можно было ее записать в переменную
$html = curl_exec($ch);                         // Имитируем заход на сайт
 
curl_setopt($ch, CURLOPT_URL, $urlTo);              // Устанавливаем адрес куда будем слать POST данные
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');  // Записываем cookies в файл, чтобы потом можно было их считать
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); // Теперь читаем cookies с файла
curl_setopt($ch, CURLOPT_POST, true);               // Говорим, что информация будет отправляться методом POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);        // Передаем POST данные
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);     // Иногда бывает, что после отправки данных происходит редирект heaer('Location:...'). 
curl_setopt($ch, CURLOPT_URL, $url);                                                        // Этот параметр говорит о то, чтобы мы следовали за ними, а не оставались на месте после отправки данных
 
$html = curl_exec($ch); // Записываем пришедшие данные в переменную    
curl_close($ch);        // Закрываем сеанс работы CURL
 
echo $html;             // И вуаля :) Выводим авторизованную страницу
Все получилось авторизоваться на сайте, авторизация находится в переменной $html.
Теперь у меня другая проблема. Есть массив с сылками для парсинга на этот сайт. При переходе по этим ссылкам, он берет контент, но контент этот опять без цен, т.е страница открываются всеравно без авторизации на сайте.
Как сделать так чтобы он открывал эти страницы уже с авторизацией?

PHP
1
2
3
4
5
$arrURL[] = "http://republika-woman.ru/magazin/product/3902400";
$arrURL[] = "http://republika-woman.ru/magazin/product/3902600";
$arrURL[] = "http://republika-woman.ru/magazin/product/3902800";
for($i=0; $i < $count; $i++) {
$contentItem = file_get_contents($arrURL[$i]);
1
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
03.01.2015, 19:57
file_get_contents никак не связан с curl. Это новый сеанс. Второй запрос нужно делать опять таки через curl.
0
3 / 3 / 0
Регистрация: 08.08.2014
Сообщений: 214
03.01.2015, 20:06  [ТС]
Ну а как его сделать тогда, у меня парсинг проходит в несколько этапов, первый этап берет все ссылки с сайта и записывает их в файл, ссылок там много.

Второй этап открывает эти ссылки и вытаскивает из них данные. Как мне тогда привязку сделать в таком случае?
0
100 / 70 / 26
Регистрация: 19.12.2014
Сообщений: 332
04.01.2015, 14:33
Лучший ответ Сообщение было отмечено zmanz как решение

Решение

Ну авторизоваться-то при помощи curl получилось?
Тогда перед curl_close() надо написать:
PHP
1
2
3
4
for($i=0; $i < $count; $i++) {
  curl_setopt($ch, CURLOPT_URL,$arrURL[$i]);
  $contentItem =curl_exec($ch);
}
В $contentItem данные будут загружаться из той же сессии, что проводит авторизацию. Если при этом кукисы не потеряются, то это будет всё тот же авторизованный ранее пользователь.
1
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
04.01.2015, 15:29
Цитата Сообщение от zmanz Посмотреть сообщение
пишу парсер товаров с сайта
А разрешение владельца сайта на это есть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.01.2015, 15:29
Помогаю со студенческими работами здесь

Авторизация на сайте по средствам POST запроса. Как расшифровать gzip ответ?
Всем привет, кто может мне помочь или кто тоже столкнулся с похожей проблемой! Проще говоря решил я сделать программу, которая будет...

Авторизация в вк . парсинг куки
привет, состряпал код авторизации в вк, получаю ответ от сервера с заголовками кук, но не получается спаристь куку и выдать MsgBox = True...

Авторизация и парсинг PHP (CURL)
Доброе время суток форумчане, Столкнулся с нуждою спарсить контент контент из закрытой части сайта https://lk.cinemapark.ru/ мне...

Как сделать парсинг файла?
У меня есть входной текстовый поток, который может содержать модификаторы стилей, которые опредиляют изменение стиля текста. Следующая...

Как сделать парсинг страницы
Имеется код: private void button1_Click(object sender, EventArgs e) { string urik =...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru