Обменный пункт электронных валют – www.wealthpay.org Сайт написан на Framework Yii 2 – у вас должен быть большой опыт работы с ним Нужно доработать ряд моментов с функционалом. Соответственно ищем программиста ...
Парсер сайта
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.
Добрый день.
Есть скрипт парсинга booking.com. Он работал, но перестал работать после изменения сайта booking.
Нужно исправить, чтобы работало :)
Функция getBookingResult получает параметр $link, а на выходе массив отелей.
Структура на выходе:
return array(
'hotel'=>$hotel, - Название отеля
'stars'=>$stars, - Кол-во звезд (может отсутствовать на сайте)
'estimate'=>$estimate, - Оценка (в числовом виде)
'estimatetext'=>$estimatetext, Оценка (в текстовом виде)
'nights'=>$nights, - Кол-во ночей
'cost'=>$cost, - Итоговая реальная стоимость (в рублях)
'discount'=>$discount, - Скидка на отель (если таковая имеется)
'url' => $url - Ссылка на этот отель
);
За работу предлагаю 20 USD
Спасибо.
header("Content-type: text/html; charset=utf-8");
function getBookingHotelInfo($result){
$ex = explode('
', $result);
$ex = explode('', $ex['1']);
$e = explode('', $ex['0']);
$e = explode('', $e['1']);
$estimatetext = trim($e['0']);
$e = explode('', $ex['0']);
$e = explode('', $e['1']);
$estimate = trim($e['0']);
$ex = explode('
$ex = explode('>', $ex['0']);
$e = explode('"', $e['1']);
$url = 'http://www.booking.com/'.trim($e['0']);
$hotel = trim($ex[count($ex)-1]);
$ex = explode('ratings_stars_', $result);
if(isset($ex['1'])){
$ex = explode(' ', $ex['1']);
}else{
$ex = explode('ratings_circles_', $result);
$ex = explode('star_track', $ex['1']);
}
$stars = trim($ex['0']);
$ex = explode('span class="price_for_x_nights_format">', $result);
$ex = explode('', $ex['1']);
$nights = preg_replace('|[^0-9]+|sUS', '', $ex['0']);
$ex = explode('', $result);
if(isset($ex['1'])){
//echo $ex['0'];die();
$ex = explode('%', $ex['0']);
$ex = explode('rel="290">', $ex['0']);
$discount = preg_replace('|[^0-9]+|sUS', '', $ex['1']);
}else{
$discount = 0;
}
return array('hotel'=>$hotel,
'stars'=>$stars,
'estimate'=>$estimate,
'estimatetext'=>$estimatetext,
'nights'=>$nights,
'cost'=>$cost,
'discount'=>$discount,
'url' => $url
);
}
function getBookingResult($link){
$path = '/var/www/studio/data/www/dev12/path/cookie.txt'; // куда ложим cookie нужно обязательно прописать.
$ci = curl_init();
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ci, CURLOPT_TIMEOUT, 30);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_HEADER, 1);
curl_setopt($ci, CURLOPT_COOKIEFILE, $path);
curl_setopt($ci, CURLOPT_COOKIEJAR, $path);
curl_setopt($ci, CURLOPT_URL, $link);
$mmm = 1;
if($mmm == 1){
curl_setopt($ci, CURLOPT_HTTPHEADER, array(
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
"Content-Type: application/x-www-form-urlencoded; charset=utf-8",
"User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0",
"X-MicrosoftAjax: Delta=true",
"X-Requested-With: XMLHttpRequest",
"Cache-Control: no-cache",
"Connection: keep-alive",
"Pragma: no-cache"
));
}
$bresult = curl_exec($ci);
return $bresult;
}
// Примеры для теста
$link1 = 'http://www.booking.com/searchresults.ru.html?dest_type=city;city=-825650;no_rooms=1;group_adults=2;group_children=0;nflt=class%3D4%3Bclass%3D5%3B;review_score=80;radius=10;checkin_monthday=15;checkin_year_month=2016-04;checkout_monthday=18;checkout_year_month=2016-04;order=price_for_two;selected_currency=RUB';
$link2 = 'http://www.booking.com/searchresults.ru.html?dest_type=city;city=-850553;no_rooms=1;group_adults=2;group_children=0;nflt=class%3D4%3Bclass%3D5%3B;review_score=80;radius=10;checkin_monthday=15;checkin_year_month=2016-04;checkout_monthday=18;checkout_year_month=2016-04;order=price_for_two;selected_currency=RUB';
$link3 = 'http://www.booking.com/searchresults.ru.html?dest_type=city;city=-130467;no_rooms=1;group_adults=2;group_children=0;nflt=class%3D3%3Bclass%3D4%3Bclass%3D5%3B;review_score=80;radius=10;checkin_monthday=15;checkin_year_month=2016-04;checkout_monthday=18;checkout_year_month=2016-04;order=price_for_two;selected_currency=RUB';
getBookingResult($link1);
Выбранный исполнитель
Заявки фрилансеров
Похожие заказы
- Веб-программирование9 заявокЗакрыт9 лет назад
Задача. Выбираем регион (запускаем парсер) и у всех компаний из списка берем поля: • Название компании • Генеральный директор • Описание • Населенный пункт • Адрес • Телефон/факс ...
Веб-программирование12 заявокЗакрыт9 лет назад- $60
Необходимо написать или доработать существующий модуль. Модуль представляет собой обработку, которая выгружает html версию указанных страниц в определённую папку, с дополнительными настройками. Модуль генерирует страницы и выгружает точную копию, со всеми ...
Веб-программированиенет заявокЗакрыт9 лет назад Здравствуйте. Требуется сделать мобильную версию портала на drupal на поддомене со всеми функц. возможностями основного сайта + должно быть полностью кроссбраузерно (safari, opera mini, netfront, ie WP 7, firefox) ...
Веб-программирование1 заявкаЗакрыт9 лет назадНа сайте внизу есть карта от Яндекс. Она в модуле слайдера Widgetkit - YOOtheme. CMS - Joomla. Суть в чем: Там 7 городов. Если пользователь рукой по карте проводить, а именно пальцем влево или вправо ...
Веб-программирование1 заявкаЗакрыт9 лет назадНеобходимо установить скрипт доски объявлений QPL
Веб-программирование2 заявкиЗакрыт9 лет назадДоброго времени суток. Решил чуток почистить свой сайт, нужно удалить около 15 000 категорий в woocommerc. Ручками можно застрять на долго) Нужно написать SQL запрос чтобы удалить определенную часть категорий, не все, ...
Веб-программирование5 заявокЗакрыт9 лет назадНеобходим человек который умеет настраивать или устанавливать апи для приема платежей крипотвалютой. Желательно block.io или blockchain.info
Веб-программирование1 заявкаЗакрыт9 лет назадЗдравствуйте, мне нужно сделать вебсайт (дизайн готов). Идея в том, что клиент постит обьявление о продаже машины на моем сайте, и оно автоматически постится на разных вебсайтах (30 разных) и автоматом постится каждый день на ...
Веб-программирование4 заявкиЗакрыт9 лет назад1. нужно привязать группы пользователей из wprecall к ролям пользователей wordpress ( чтобы управлять правами пользователей ) 2. после регистрации или авторизации на сайте при обращении к главной странице сайта пользователя перенаправляло на определенную ...
Веб-программирование2 заявкиЗакрыт9 лет назад