Голосование
Какую CMS Вы предпочитаете
AtomX
Fapos CMS
Drunya CMS
Топ новостей
- Генератор аватарок в стиле пиксель-арт
- Скачать Fapos CMS 1.1.8 Бесплатно
- Цунами в Японии. Последствия.
- Предварительная инфа о FAPOS 1.1.9. Часть 2
- Описание версии CMS Fapos 0.9.9
- Новая версия Fapos 1.3
- Половина россиян не смогла отличить легальный контент
- Что есть Fapos CMS
- Убийца Apache у вас на пороге
- Открытое тестирование Fapos 0.9.9
Последние комментарии
Топ пользователей
Сайты на AtomX CMS
В предыдущей статье мы остановились на том что научились получать доступ к страницам удаленных сайтов посредством CURL. Для повторения лишь приведу последний пример.
Теперь давайте разберемся как нам получить доступ к странице с авторизацией. Для этого мы должны получить ID сессии и в дальнейшем передавать его при каждом запросе. Это может выглядеть сложно, но на самом деле все намного проще. Сперва мы отправляем POST запрос с логином и паролем, а за тем вытягиваем ID сессии и в дальнейшем путешествуем по сайту и получаем его странички, пользуясь этим ID.
Делается это так
А теперь все вместе, что бы было понятнее как CURL с этим всем справляется
как видишь, все очень просто. Мы просто, получая ответ проверяем есть ли там то что нам надо и пихаем его в нашу сессию, но перед запросом устанавливаем куки. Но некоторые сайты так же проверяют заголовки, что бы еще немного себя обезопасить. Наш друг КУРЛ и с этим справляется на 5 баллов. Например заголовки в curl можно установить так
Cо всем списком опций курла можно ознакомиться в доке по PHP. Использование этой библиотеки открывает очень большие перспективы, я лично писал на ее основе скрипты, способные выдерать из сайта контент и картинки, сохраняя это все в нужном мне формате, полностью автоматически, единственным недостатком являеться лишь то, что под каждый сайт такие скрипты надо писать индивидуально, но это уже не бока курла а методов обработки в целом, которые на данный момент не являются совершенством.
Думаю на некоторое время этого тебе хватит, а осмыслив то что тут написано и как с этим работать, можно почитать третью часть этой статьи.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php //устанавливаем что будем посылать
$reguestParams = 'var=value&var2=value2';
//инициализируем сеанс
$ch = curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $reguestParams);
//делаем запрос
$responseData = curl_exec($ch);
//закрываем сеанс
curl_close($ch);?>
Теперь давайте разберемся как нам получить доступ к странице с авторизацией. Для этого мы должны получить ID сессии и в дальнейшем передавать его при каждом запросе. Это может выглядеть сложно, но на самом деле все намного проще. Сперва мы отправляем POST запрос с логином и паролем, а за тем вытягиваем ID сессии и в дальнейшем путешествуем по сайту и получаем его странички, пользуясь этим ID.
Делается это так
1
2
3
<?php if ( isset($_SESSION['user_sess_id']) ) {
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=' . $_SESSION['user_sess_id']);
}?>
А теперь все вместе, что бы было понятнее как CURL с этим всем справляется
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php //устанавливаем что будем посылать
$reguestParams = 'var=value&var2=value2';
//инициализируем сеанс
$ch = curl_init('http://target.com');
//устанавливаем параметры
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//говорим что мы собираемся передавать данные и что именно передавать
curl_setopt($ch, CURLOPT_POST, 1);
//устанавливаем куки с ID сессии
if ( isset($_SESSION['user_sess_id']) ) {
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=' . $_SESSION['user_sess_id']);
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $reguestParams);
//делаем запрос
$responseData = curl_exec($ch);
//закрываем сеанс
curl_close($ch);
//тут мы проверяем пришел ли нам в ответе от сервера ID сессии и если он есть устанавливаем его
if (preg_match('#Set-Cookie:\s+PHPSESSID=(.*);#Ui', $responseData, $match)) $_SESSION['user_sess_id'] = $match[1];?>
как видишь, все очень просто. Мы просто, получая ответ проверяем есть ли там то что нам надо и пихаем его в нашу сессию, но перед запросом устанавливаем куки. Но некоторые сайты так же проверяют заголовки, что бы еще немного себя обезопасить. Наш друг КУРЛ и с этим справляется на 5 баллов. Например заголовки в curl можно установить так
1
2
<?php curl_setopt($ch, CURLOPT_USERAGENT, 'Браузер');
curl_setopt($ch, CURLOPT_REFERER , 'Реферер');?>
Cо всем списком опций курла можно ознакомиться в доке по PHP. Использование этой библиотеки открывает очень большие перспективы, я лично писал на ее основе скрипты, способные выдерать из сайта контент и картинки, сохраняя это все в нужном мне формате, полностью автоматически, единственным недостатком являеться лишь то, что под каждый сайт такие скрипты надо писать индивидуально, но это уже не бока курла а методов обработки в целом, которые на данный момент не являются совершенством.
Думаю на некоторое время этого тебе хватит, а осмыслив то что тут написано и как с этим работать, можно почитать третью часть этой статьи.
Как обчистить чужой сайт - Нет проблем. ЧАСТЬ 2
Теги: грабер; парсер; CURL PHP; Грабер сайтов; Как грабить контент;
Источник: Drunya
Теги: грабер; парсер; CURL PHP; Грабер сайтов; Как грабить контент;
Источник: Drunya
Сейчас online: 94. Зарегистрированных: 0. Гостей: 94.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Программирование - что может быть проще.
Программирование - что может быть проще.
AtomX 2.8 Beta - Новая версия бесплатной CMS
AtomX 2.8 Beta - Новая версия бесплатной CMS
Написание простого вируса в блокноте
Что такое API и для чего они нужны
Классы в PHP для чайников
Написание простого вируса в блокноте