Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- echo "<b>MarketGid</b><br />";
- $_GET['link'] = str_replace("%%", "&", $_GET['link']);
- include ('functions.php');
- @unlink('stop.txt');
- if ($mainstop) {
- die("<center>Приобрести полноценную версию Вы можете на сайте <a href='http://www.zuziken.ru'>www.zuziken.ru</a><br />По вопросам покупки обращайтесь в ICQ 315-625-299</center>");
- }
- if ($_GET['link'] == '') die('<b>Забыли ввести ссылку в форму.</b>');
- $p = get_page($_GET['link']);
- preg_match('/<ul class="hmenu-1 clearfix hmactive-1">[^<]*<li class="tm-1"><span>(.+)<\/span><\/li>/isU', $p, $t);
- $cat_name = $t[1];
- $connect = mysql_connect($host, $login, $password) or die(mysql_error());
- $select_db = mysql_select_db($database, $connect) or die(mysql_error());
- mysql_query("set names cp1251");
- $q = mysql_query("select `id` from `category` where `cat_name` = '" . mysql_escape_string($cat_name) . "'") or die(mysql_error());
- $cat_id = 0;
- while ($q_r = mysql_fetch_assoc($q)) $cat_id = $q_r['id'];
- if ($cat_id == 0) {
- mysql_query("insert into `category` set `cat_name` = '" . mysql_escape_string($cat_name) . "' ") or die(mysql_error());
- $cat_id = mysql_insert_id();
- echo "<b>Создана категория</b> <b>" . $cat_name . "</b><br />";
- flush();
- ob_flush();
- flush();
- }
- else {
- echo "<b>Данная категория уже есть. Пишем в нее.</b> <b>" . $cat_name . "</b><br />";
- flush();
- ob_flush();
- flush();
- }
- mysql_close($connect);
- if (preg_match('/>(\d+)<\/a><\/li>[^<]*<li><a href="[^"]*" target="_blank">следующая<\/a><\/li>/isU', $p, $t)) $num_pages = $t[1];
- else $num_pages = 2;
- $list_link = $_GET['link'];
- $i = 1;
- $c = 0;
- $letter = rand(1, 20);
- $items_num = 0;
- while ($i < $num_pages) {
- $k = $i * 60;
- $cur_list_link = str_replace('/0/', '/' . $k . '/', $list_link);
- if ($i != 1) $p = get_page($cur_list_link);
- preg_match_all('/<h1><a href="(.+)".*>(.+)<\/a><\/h1>.*<p>(.*)<\/p>/isU', $p, $items, $o);
- foreach($items as $it) {
- if (file_exists('stop.txt')) die('<b>Парсинг прерван по запросу пользователя.</b>');
- unset($res);
- $res['name'] = trim(strip_tags($it[2]));
- $connect = mysql_connect($host, $login, $password) or die(mysql_error());
- $select_db = mysql_select_db($database, $connect) or die(mysql_error());
- mysql_query("set names cp1251");
- $q = mysql_query("select `id` from `product` where `cat_id` = '" . $cat_id . "' and `name` = '" . mysql_escape_string($res['name']) . "' ") or die(mysql_error());
- $prod_id = 0;
- mysql_close($connect);
- while ($q_r = mysql_fetch_assoc($q)) $prod_id = $q_r['id'];
- if ($prod_id != 0 || (!empty($_GET['key']) && !substr_count($res['name'], $_GET['key']))) {
- echo "<font color='green'>" . $res['name'] . ' - товар</font> <b>УЖЕ ЕСТЬ ИЛИ НЕ ПОДХОДИТ ПО КЛЮЧЕВОМУ СЛОВУ</b><br />';
- flush();
- ob_flush();
- flush();
- }
- else {
- $_url = 'http://goods.marketgid.com' . $it[1];
- $p = get_page('http://goods.marketgid.com' . $it[1]);
- $res['brief'] = trim($it[3]);
- preg_match('/<span>Производитель:.*>([^>]+)<\/a>/iU', $p, $t);
- $res['proizv'] = trim($t[1]);
- if (!preg_match('/Цена: <em>\$(\d+)<\/em>/iU', $p, $prices)) preg_match('/>\$([\d\.]+)</iU', $p, $prices);
- $res['price'] = $prices[1];
- preg_match_all("/<div class=\"box\" id=\"good-characteristic\">(.*?)<\/div>/", $p, $gh);
- preg_match_all("/strong>(.*?)<\/strong>(.*?)\</", $gh[0][0], $hs);
- unset($hs2);
- foreach($hs[1] as $id => $hn) {
- $hs2[$hn] = $hs[2][$id];
- }
- preg_match('/<div class="box" id="good-description">(.+)<\/div>/isU', $p, $t);
- $res['descr'] = trim($t[1]);
- $res['descr'] = preg_replace('/<a.*>/iU', '', $res['descr']);
- $res['descr'] = preg_replace('/<\/a>/iU', '', $res['descr']);
- preg_match('/<td id="good-img"><img.*src="(.+)"/iU', $p, $t);
- $im = get_page1($t[1]);
- $l = time() + $c;
- $res['fname'] = $letter . $l . '.jpg';
- file_put_contents("images/" . $res['fname'], $im);
- $c++;
- $connect = mysql_connect($host, $login, $password) or die(mysql_error());
- $select_db = mysql_select_db($database, $connect) or die(mysql_error());
- mysql_query("set names cp1251");
- foreach($res as $key => $value) {
- $res[$key] = mysql_escape_string($value);
- $res[$key] = str_replace("", "", $res[$key]);
- }
- if (empty($res['price'])) {
- if (!empty($_POST['random_price'])) {
- $res['price'] = rand(1000, 10000);
- }
- }
- mysql_query("insert into `product` set `cat_id` = '" . $cat_id . "',
- `name` = '" . $res['name'] . "',
- `image` = '" . $res['fname'] . "',
- `price` = '" . $res['price'] . "',
- `url` = '" . $_url . "',
- `brand` = '" . $res['proizv'] . "' ") or die(mysql_error());
- $prod_id = mysql_insert_id();
- $query = mysql_query("SELECT * FROM hars WHERE name='Характеристики' AND cat_id='" . $cat_id . "'");
- if (mysql_numrows($query)) {
- $data = mysql_fetch_array($query);
- $har_d = $data['id'];
- }
- else {
- mysql_query("INSERT INTO hars VALUES('','Характеристики','$cat_id')");
- $har_d = mysql_insert_id();
- }
- if (!empty($hs2)) {
- foreach($hs2 as $name => $har) {
- if (!empty($har)) {
- $query = mysql_query("SELECT * FROM hars WHERE name='$name' AND cat_id='" . $cat_id . "'");
- if (mysql_numrows($query)) {
- $data = mysql_fetch_array($query);
- $har_i = $data['id'];
- }
- else {
- mysql_query("INSERT INTO hars VALUES('','$name','$cat_id')");
- $har_i = mysql_insert_id();
- }
- mysql_query("INSERT INTO hars_values VALUES('$har_i','$prod_id','$har')");
- }
- }
- }
- mysql_query("INSERT INTO hars_values VALUES('$har_d','$prod_id','" . $res['descr'] . "')");
- mysql_close($connect);
- echo "<font color='green'>" . $res['name'] . "</font><br />";
- flush();
- ob_flush();
- flush();
- $items_num++;
- if ($_GET['num'] != '' and $items_num >= $_GET['num']) die('<b>Задача выполнена. Спарсено ' . $_GET['num'] . ' товаров.</b>');
- }
- }
- echo "<b>Отпарсена страница " . $i . "</b><br /><br />";
- flush();
- ob_flush();
- flush();
- $i++;
- }
Advertisement
Add Comment
Please, Sign In to add comment