anton_slim

encoded_script_full.php

Feb 1st, 2012
4,116
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. echo "<b>MarketGid</b><br />";
  3. $_GET['link'] = str_replace("%%", "&", $_GET['link']);
  4. include ('functions.php');
  5.  
  6. @unlink('stop.txt');
  7.  
  8. if ($mainstop) {
  9.     die("<center>Приобрести полноценную версию Вы можете на сайте <a href='http://www.zuziken.ru'>www.zuziken.ru</a><br />По вопросам покупки обращайтесь в ICQ 315-625-299</center>");
  10. }
  11.  
  12. if ($_GET['link'] == '') die('<b>Забыли ввести ссылку в форму.</b>');
  13. $p = get_page($_GET['link']);
  14. preg_match('/<ul class="hmenu-1 clearfix hmactive-1">[^<]*<li class="tm-1"><span>(.+)<\/span><\/li>/isU', $p, $t);
  15. $cat_name = $t[1];
  16. $connect = mysql_connect($host, $login, $password) or die(mysql_error());
  17. $select_db = mysql_select_db($database, $connect) or die(mysql_error());
  18. mysql_query("set names cp1251");
  19. $q = mysql_query("select `id` from `category` where `cat_name` = '" . mysql_escape_string($cat_name) . "'") or die(mysql_error());
  20. $cat_id = 0;
  21.  
  22. while ($q_r = mysql_fetch_assoc($q)) $cat_id = $q_r['id'];
  23.  
  24. if ($cat_id == 0) {
  25.     mysql_query("insert into `category` set `cat_name` = '" . mysql_escape_string($cat_name) . "' ") or die(mysql_error());
  26.     $cat_id = mysql_insert_id();
  27.     echo "<b>Создана категория</b> <b>" . $cat_name . "</b><br />";
  28.     flush();
  29.     ob_flush();
  30.     flush();
  31. }
  32. else {
  33.     echo "<b>Данная категория уже есть. Пишем в нее.</b> <b>" . $cat_name . "</b><br />";
  34.     flush();
  35.     ob_flush();
  36.     flush();
  37. }
  38.  
  39. mysql_close($connect);
  40.  
  41. if (preg_match('/>(\d+)<\/a><\/li>[^<]*<li><a href="[^"]*" target="_blank">следующая<\/a><\/li>/isU', $p, $t)) $num_pages = $t[1];
  42. else $num_pages = 2;
  43. $list_link = $_GET['link'];
  44. $i = 1;
  45. $c = 0;
  46. $letter = rand(1, 20);
  47. $items_num = 0;
  48.  
  49. while ($i < $num_pages) {
  50.     $k = $i * 60;
  51.     $cur_list_link = str_replace('/0/', '/' . $k . '/', $list_link);
  52.     if ($i != 1) $p = get_page($cur_list_link);
  53.     preg_match_all('/<h1><a href="(.+)".*>(.+)<\/a><\/h1>.*<p>(.*)<\/p>/isU', $p, $items, $o);
  54.     foreach($items as $it) {
  55.         if (file_exists('stop.txt')) die('<b>Парсинг прерван по запросу пользователя.</b>');
  56.         unset($res);
  57.         $res['name'] = trim(strip_tags($it[2]));
  58.         $connect = mysql_connect($host, $login, $password) or die(mysql_error());
  59.         $select_db = mysql_select_db($database, $connect) or die(mysql_error());
  60.         mysql_query("set names cp1251");
  61.         $q = mysql_query("select `id` from `product` where `cat_id` = '" . $cat_id . "' and `name` = '" . mysql_escape_string($res['name']) . "' ") or die(mysql_error());
  62.         $prod_id = 0;
  63.         mysql_close($connect);
  64.         while ($q_r = mysql_fetch_assoc($q)) $prod_id = $q_r['id'];
  65.         if ($prod_id != 0 || (!empty($_GET['key']) && !substr_count($res['name'], $_GET['key']))) {
  66.             echo "<font color='green'>" . $res['name'] . ' - товар</font> <b>УЖЕ ЕСТЬ ИЛИ НЕ ПОДХОДИТ ПО КЛЮЧЕВОМУ СЛОВУ</b><br />';
  67.             flush();
  68.             ob_flush();
  69.             flush();
  70.         }
  71.         else {
  72.             $_url = 'http://goods.marketgid.com' . $it[1];
  73.             $p = get_page('http://goods.marketgid.com' . $it[1]);
  74.             $res['brief'] = trim($it[3]);
  75.             preg_match('/<span>Производитель:.*>([^>]+)<\/a>/iU', $p, $t);
  76.             $res['proizv'] = trim($t[1]);
  77.             if (!preg_match('/Цена: <em>\$(\d+)<\/em>/iU', $p, $prices)) preg_match('/>\$([\d\.]+)</iU', $p, $prices);
  78.             $res['price'] = $prices[1];
  79.             preg_match_all("/<div class=\"box\" id=\"good-characteristic\">(.*?)<\/div>/", $p, $gh);
  80.             preg_match_all("/strong>(.*?)<\/strong>(.*?)\</", $gh[0][0], $hs);
  81.             unset($hs2);
  82.             foreach($hs[1] as $id => $hn) {
  83.                 $hs2[$hn] = $hs[2][$id];
  84.             }
  85.  
  86.             preg_match('/<div class="box" id="good-description">(.+)<\/div>/isU', $p, $t);
  87.             $res['descr'] = trim($t[1]);
  88.             $res['descr'] = preg_replace('/<a.*>/iU', '', $res['descr']);
  89.             $res['descr'] = preg_replace('/<\/a>/iU', '', $res['descr']);
  90.             preg_match('/<td id="good-img"><img.*src="(.+)"/iU', $p, $t);
  91.             $im = get_page1($t[1]);
  92.             $l = time() + $c;
  93.             $res['fname'] = $letter . $l . '.jpg';
  94.             file_put_contents("images/" . $res['fname'], $im);
  95.             $c++;
  96.             $connect = mysql_connect($host, $login, $password) or die(mysql_error());
  97.             $select_db = mysql_select_db($database, $connect) or die(mysql_error());
  98.             mysql_query("set names cp1251");
  99.             foreach($res as $key => $value) {
  100.                 $res[$key] = mysql_escape_string($value);
  101.                 $res[$key] = str_replace("", "", $res[$key]);
  102.             }
  103.  
  104.             if (empty($res['price'])) {
  105.                 if (!empty($_POST['random_price'])) {
  106.                     $res['price'] = rand(1000, 10000);
  107.                 }
  108.             }
  109.  
  110.             mysql_query("insert into `product` set `cat_id` = '" . $cat_id . "',
  111.  
  112.                `name` = '" . $res['name'] . "',
  113.  
  114.                `image` = '" . $res['fname'] . "',
  115.  
  116.                `price` = '" . $res['price'] . "',
  117.  
  118.                `url` = '" . $_url . "',
  119.  
  120.                `brand` = '" . $res['proizv'] . "'          ") or die(mysql_error());
  121.             $prod_id = mysql_insert_id();
  122.             $query = mysql_query("SELECT * FROM hars WHERE name='Характеристики' AND cat_id='" . $cat_id . "'");
  123.             if (mysql_numrows($query)) {
  124.                 $data = mysql_fetch_array($query);
  125.                 $har_d = $data['id'];
  126.             }
  127.             else {
  128.                 mysql_query("INSERT INTO hars VALUES('','Характеристики','$cat_id')");
  129.                 $har_d = mysql_insert_id();
  130.             }
  131.  
  132.             if (!empty($hs2)) {
  133.                 foreach($hs2 as $name => $har) {
  134.                     if (!empty($har)) {
  135.                         $query = mysql_query("SELECT * FROM hars WHERE name='$name' AND cat_id='" . $cat_id . "'");
  136.                         if (mysql_numrows($query)) {
  137.                             $data = mysql_fetch_array($query);
  138.                             $har_i = $data['id'];
  139.                         }
  140.                         else {
  141.                             mysql_query("INSERT INTO hars VALUES('','$name','$cat_id')");
  142.                             $har_i = mysql_insert_id();
  143.                         }
  144.  
  145.                         mysql_query("INSERT INTO hars_values VALUES('$har_i','$prod_id','$har')");
  146.                     }
  147.                 }
  148.             }
  149.  
  150.             mysql_query("INSERT INTO hars_values VALUES('$har_d','$prod_id','" . $res['descr'] . "')");
  151.             mysql_close($connect);
  152.             echo "<font color='green'>" . $res['name'] . "</font><br />";
  153.             flush();
  154.             ob_flush();
  155.             flush();
  156.             $items_num++;
  157.             if ($_GET['num'] != '' and $items_num >= $_GET['num']) die('<b>Задача выполнена. Спарсено ' . $_GET['num'] . ' товаров.</b>');
  158.         }
  159.     }
  160.  
  161.     echo "<b>Отпарсена страница " . $i . "</b><br /><br />";
  162.     flush();
  163.     ob_flush();
  164.     flush();
  165.     $i++;
  166. }
RAW Paste Data