<?php
/*
* Настройки
*/
$startPage = 'http://city.ukr.net/';
/*
* Глобальные переменные
*/
$cityArray = array(
'kiev' => 'Киев',
'vinnitsa' => 'Винница',
'dnepropetrovsk' => 'Днепропетровск',
'donetsk' => 'Донецк',
'zhitomir' => 'Житомир',
'zaporozhje' => 'Запорожье',
'ivano-frankovsk' => 'Ивано-Франковск',
'kirovograd' => 'Кировоград',
'crimea' => 'Крым',
'lugansk' => 'Луганск',
'lutsk' => 'Луцк',
'lvov' => 'Львов',
'nikolaev' => 'Николаев',
'odessa' => 'Одесса',
'poltava' => 'Полтава',
'rovno' => 'Ровно',
'sumy' => 'Сумы',
'ternopol' => 'Тернополь',
'uzhgorod' => 'Ужгород',
'kharkov' => 'Харьков',
'herson' => 'Херсон',
'hmelnitskij' => 'Хмельницкий',
'cherkassy' => 'Черкаcсы',
'chernigov' => 'Чернигов',
'chernovtsy' => 'Черновцы'
);
/*
* Подключаем библиотеки
*/
require_once 'Snoopy.class.php';
/*
* Создаём экземпляр класса
*/
$snoopy = new Snoopy();
$snoopy->agent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1';
$sqlConnect = mysql_connect('localhost','root', 'root');
mysql_select_db('ukr_net', $sqlConnect);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
/*
* Получаем все категории, во всех городах
*/
foreach($cityArray as $cityKey => $cityValue){
$urlSnoopy = $startPage.$cityKey;
$snoopy->fetch($urlSnoopy);
preg_match_all('@<div class="title">\n<a href="(http:\/\/city.ukr.net\/'.$cityKey.'\/.*?\/index.html)">(.*?)<\/a>@is', $snoopy->results, $categoryArray);
/*
* Получаем все подкатегории, полученых категорий
*/
for($i = 0; $i < count($categoryArray[1]); $i++){
$urlSnoopy = $categoryArray[1][$i];
$snoopy->fetch($urlSnoopy);
preg_match_all('@<div class="subtitle">\n<a href="(http:\/\/city.ukr.net\/'.$cityKey.'\/.*?\/.*?\/index.html)">(.*?)<\/a>@is', $snoopy->results, $subCategoryArray);
/*
* Получаем отдельные рекламные блоки со всех страниц
*/
for($j = 0; $j < count($subCategoryArray[1]); $j++){
$urlSnoopy = $subCategoryArray[1][$j];
$snoopy->fetch($urlSnoopy);
preg_match_all('@<h2><\!--BOT_URL_BEGIN(.*?)<div class="cl">@s', $snoopy->results, $listBlock);
$listBlock = $listBlock[1];
/*
* Каждый рекламный блок запихиваем в массив, с доп. данными о его родителях
*/
for($k = 0; $k < count($listBlock); $k++){
$tempResult = array();
$tempResult['city'] = $cityValue;
$tempResult['category'] = $categoryArray[2][$i];
$tempResult['subcategory'] = $subCategoryArray[2][$j];
preg_match('@BOT_URL_END--><span> \- (.*?)</span>@is', $listBlock[$k], $dataType);
if(isset($dataType[1])){
$tempResult['type'] = $dataType[1];
}else{
$tempResult['type'] = '';
}
preg_match('@BOT_URL_BEGIN-->(.*?)<\!--BOT_URL_END@is', $listBlock[$k], $dataName);
if(isset($dataName[1])){
$tempResult['name'] = $dataName[1];
}else{
$tempResult['name'] = '';
}
preg_match('@Телефон: (.*?)</div>@is', $listBlock[$k], $dataPhone);
if(isset($dataPhone[1])){
$tempResult['phone'] = $dataPhone[1];
}else{
$tempResult['phone'] = '';
}
preg_match('@<div class="contacts">(.*?), '.$cityValue.'@is', $listBlock[$k], $dataAddres);
if(isset($dataAddres[1])){
$tempResult['address'] = $dataAddres[1];
}else{
$tempResult['address'] = '';
}
preg_match('@<a href="(.*?)" target="_blank" onmouseup=".*?">@i', $listBlock[$k], $dataLink);
if(isset($dataLink[1])){
$tempResult['link'] = $dataLink[1];
}else{
$tempResult['link'] = '';
}
$sqlQuery = sprintf("INSERT INTO dataPars (`city`, `category`, `subcategory`, `type`, `name`, `phone`, `address`, `link`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
$tempResult['city'],
$tempResult['category'],
$tempResult['subcategory'],
$tempResult['type'],
$tempResult['name'],
$tempResult['phone'],
$tempResult['address'],
$tempResult['link']
);
mysql_query($sqlQuery, $sqlConnect);
}
}
}
}
mysql_close($sqlConnect);