Advertisement
Nexo78

Untitled

Oct 13th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.48 KB | None | 0 0
  1. <?php
  2.  
  3. require ('phpQuery-onefile.php');
  4.  
  5. $db_connect = mysqli_connect("localhost", "root", "", "emma233_odru");
  6.  
  7. $categories = array(
  8.             'детская одежда' => 'детская одежда',
  9.             'детская обувь' => 'детская обувь',
  10.             'детские коляски' => 'детские коляски',
  11.             'детская мебель' => 'детская мебель',
  12.             'игрушки' => 'игрушки',
  13.             'товары для кормления' => 'товары для кормления',
  14.             'прочие детские товары' => 'прочие детские товары',
  15.             'квартиры,комнаты' => 'продажа квартир',
  16.             'земля' => 'продажа земли',
  17.             'дома' => 'продажа домов',
  18.             'коммерческая недвижимость' => 'продажа помещений',
  19.             'гаражи, парковки' => 'продажа гаражей и стоянок',
  20.             'посуточная аренда жилья' => 'аренда квартир',
  21.             'недвижимость за рубежом' => 'продажа за рубежом',
  22.             'легковые автомобили' => 'легковые автомобили',
  23.             'сельхозтехника' => 'сельхозтехника',
  24.             'прицепы / дома на колесах' => 'дома на колесах',
  25.             'мото' => 'мототехника',
  26.             'водный транспорт' => 'водный транспорт',
  27.             'другой транспорт' => 'другой транспорт',
  28.             'грузовые автомобили' => 'грузовые автомобили',
  29.             'воздушный транспорт' => 'воздушный транспорт',
  30.             'запчасти для транспорта' => 'запчасти и аксессуары',
  31.             'кошки' => 'кошки',
  32.             'собаки' => 'собаки',
  33.             'рептилии' => 'рептилии',
  34.             'зоотовары' => 'зоотовары',
  35.             'птицы' => 'птицы',
  36.             'грызуны' => 'грызуны',
  37.             'сельхоз животные' => 'сельхоз животные',
  38.             'бесплатно (животные и вязка)' => 'животные даром',
  39.             'бюро находок' => 'бюро находок',
  40.             'другие животные' => 'другие животные',
  41.             'посуда / кухонная утварь' => 'посуда',
  42.             'мебель' => 'мебель',
  43.             'инструменты' => 'инструменты',
  44.             'комнатные растения' => 'комнатные растения',
  45.             'сад / огород' => 'садовые растения',
  46.             'продукты питания / напитки' => 'продукты питания',
  47.             'предметы интерьера' => 'предметы интерьера',
  48.             'строительство / ремонт' => 'строительство и ремонт',
  49.             'прочие товары для дома' => 'прочие товары для дома',
  50.             'компьютеры и комплектующие' => 'компьютеры',
  51.             'телефоны и аксессуары' => 'телефоны',
  52.             'фото / видео' => 'фототехника',
  53.             'аудиотехника' => 'аудиотехника',
  54.             'аксессуары и комплектующие' => 'аксессуары и комплектующие',
  55.             'игры и игровые приставки' => 'игры и игровые приставки',
  56.             'техника для дома' => 'техника для дома',
  57.             'техника для кухни' => 'техника для кухни',
  58.             'прочая электроника' => 'прочая электроника',
  59.             'перевозки / аренда транспорта' => 'транспортные услуги',
  60.             'cтроительство / ремонт / уборка' => 'cтроительство / ремонт / уборка',
  61.             'финансовые услуги / партнерство' => 'финансовые услуги / партнерство',
  62.             'красота / здоровье' => 'здоровье, красота, фитнес',
  63.             'реклама / полиграфия / маркетинг / интернет' => 'реклама - полиграфия ',
  64.             'ремонт и обслуживание техники' => 'обслуживание - ремонт техники ',
  65.             'сырьё / материалы' => 'сырьё, материалы',
  66.             'продажа бизнеса' => 'продажа бизнеса',
  67.             'сетевой маркетинг' => 'маркетинг - интернет',
  68.             'прочие услуги' => 'прочие услуги',
  69.             'одежда/обувь' => 'одежда и обувь',
  70.             'для свадьбы' => 'все для свадьбы',
  71.             'подарки' => 'подарки',
  72.             'аксессуары' => 'аксессуары',
  73.             'красота / здоровье' => 'красота и здоровье',
  74.             'мода разное' => 'прочие товары',
  75.             'антиквариат / коллекции' => 'коллекционирование',
  76.             'спорт / отдых' => 'спорт и отдых',
  77.             'билеты' => 'билеты и путешествия',
  78.             'другое' => 'другое',
  79.             'музыкальные инструменты' => 'музыкальные инструменты',
  80. );
  81.  
  82. if(!empty($_POST['url'])){
  83.  
  84. }
  85. else{
  86.     echo "Введите url";
  87.     exit();
  88. }
  89. if(!empty($_POST['page_count'])) {
  90.  
  91.     $i = 1;
  92.     $j = $_POST['page_count'];
  93.     for ($i; $i<=$j; $i++){
  94.         $links[] = $_POST['url'] . '&page=' . $i;
  95.     }
  96.  
  97. }
  98. else{
  99.     echo "Введите кол-во страниц";
  100.     exit();
  101. }
  102.  
  103. $replace = array(
  104.   'Детский мир » ', '» Одежда для девочек', '» Одежда для мальчиков'
  105. );
  106.  
  107. function curl_content($url){
  108.     $ch = curl_init($url);
  109.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  110.     curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; WinNT; en; rv:1.0.2) Gecko/20030311 Beonex/0.8.2-stable');
  111.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  112.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  113.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER ,false);
  114.  
  115.     $html=curl_exec($ch);
  116.     unset($url);
  117.     return $html;
  118.  
  119. }
  120.  
  121. function category_replace($category, $replace){
  122.  
  123.     $det_mir_replace = str_replace($replace, '', $category);
  124.  
  125.     //echo $det_mir_replace;
  126.     return $det_mir_replace;
  127.  
  128. }
  129.  
  130. /**
  131.  * @param $url
  132.  * @param $id
  133.  * @param $token
  134.  * @return array
  135.  */
  136. function get_phone_number($url)
  137. {
  138.     $cookie_path = $_SERVER['DOCUMENT_ROOT'] . '/cookie.dat';
  139.     preg_match('|-ID(.*).html|', $url, $id);
  140.     $olx = curl_init($url);
  141.     curl_setopt($olx, CURLOPT_SSL_VERIFYPEER, false);
  142.     curl_setopt($olx, CURLOPT_RETURNTRANSFER, true);
  143.     curl_setopt($olx, CURLOPT_HEADER, 1);
  144.     curl_setopt($olx, CURLOPT_COOKIEFILE, $cookie_path);
  145.     curl_setopt($olx, CURLOPT_COOKIEJAR, $cookie_path);
  146.     $result = curl_exec($olx);
  147.     $content = $result;
  148.     curl_close($olx);
  149.     preg_match("|phoneToken = '(.*)';|", $result, $token);
  150.     $olx_number = curl_init('https://www.olx.ua/ajax/misc/contact/phone/' . $id[1] . '/?pt=' . $token[1]);
  151.     curl_setopt($olx_number, CURLOPT_HTTPHEADER, [
  152.         'Host: www.olx.ua',
  153.         'Accept: */*',
  154.         'Accept-Language: uk,ru;q=0.8,en-US;q=0.5,en;q=0.3',
  155.         'Accept-Encoding: gzip, deflate, br',
  156.         'Connection: keep-alive',
  157.         'X-Requested-With: XMLHttpRequest'
  158.     ]);
  159.     curl_setopt($olx_number, CURLOPT_REFERER, $url);
  160.     curl_setopt($olx_number, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  161.     curl_setopt($olx_number, CURLOPT_COOKIEFILE, $cookie_path);
  162.     curl_setopt($olx_number, CURLOPT_SSL_VERIFYPEER, false);
  163.     curl_setopt($olx_number, CURLOPT_RETURNTRANSFER, true);
  164.     $result = curl_exec($olx_number);
  165.     curl_close($olx_number);
  166.     unlink( $_SERVER['DOCUMENT_ROOT'].'/cookie.dat');
  167.     $json = json_decode($result);
  168.     return array($content, $json);
  169. }
  170.  
  171.  
  172. /**
  173.  * @param $db_connect
  174.  * @param $linkimgbd
  175.  */
  176. function get_img_by_name($db_connect, $linkimgbd)
  177. {
  178.     $sel = mysqli_query($db_connect, "select pk_i_id from oc_t_item_resource ORDER by pk_i_id desc");
  179.     $feth = mysqli_fetch_all($sel);
  180.  
  181.     $current_img_nr = $feth[0][0] +1;
  182.     $orig_img_name = $current_img_nr;
  183.     $thumb_img_name = $current_img_nr . '_thumbnail' ;
  184.     $preview_img_name = $current_img_nr . '_preview' ;
  185.  
  186.     $saveto1 = '../dpm/oc-content/uploads/' . $orig_img_name . '.jpg';
  187.     $saveto2 = '../dpm/oc-content/uploads/' . $thumb_img_name . '.jpg';
  188.     $saveto3 = '../dpm/oc-content/uploads/' . $preview_img_name . '.jpg';
  189.     $ch = curl_init($linkimgbd);
  190.     curl_setopt($ch, CURLOPT_HEADER, 0);
  191.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  192.     curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
  193.     $raw = curl_exec($ch);
  194.     curl_close($ch);
  195.  
  196.     $fp = fopen($saveto1, 'w');
  197.     $fp2 = fopen($saveto2, 'w');
  198.     $fp3 = fopen($saveto3, 'w');
  199.     fwrite($fp, $raw);
  200.     fwrite($fp2, $raw);
  201.     fwrite($fp3, $raw);
  202.     fclose($fp);
  203.     fclose($fp2);
  204.     fclose($fp3);
  205. }
  206.  
  207. function get_category()
  208. {
  209.  
  210.  
  211.  
  212. }
  213.  
  214. /**
  215.  * @param $pricebd
  216.  * @param $titlebd
  217.  * @return string
  218.  */
  219. function price_replace($pricebd)
  220. {
  221.     $price_replace = str_replace(" грн.", "", $pricebd);
  222.     $r = str_replace(' ', '', $price_replace) . '000000';
  223.  
  224.     return $r;
  225. }
  226.  
  227.  
  228. /**
  229.  * @param $db_connect
  230.  * @param $titlebd
  231.  * @param $r
  232.  * @param $namedb
  233.  * @param $contentbd
  234.  * @param $telbd
  235.  * @param $img_name
  236.  */
  237. function insert_querys($db_connect, $titlebd, $r, $namedb, $contentbd, $telbd)
  238. {
  239.     $select_query = mysqli_query($db_connect, "select s_title from `oc_t_item_description`");
  240.     $query_res = mysqli_fetch_all($select_query, MYSQLI_ASSOC);
  241.     $time = date('Y-m-d H:i:s');
  242.  
  243.     if ($query_res !== $titlebd) {
  244.  
  245.         mysqli_query($db_connect, "insert into `oc_t_item` (fk_i_category_id, dt_pub_date, i_price, fk_c_currency_code, s_contact_name, b_active) values ( 2, '$time', '$r', 'GRN','$namedb', '1' )");
  246.         $id = mysqli_insert_id($db_connect);
  247.         mysqli_query($db_connect, "insert into `oc_t_item_description` (fk_i_item_id, s_title, s_description) values ($id , '$titlebd', '$contentbd')");
  248.         mysqli_query($db_connect, "insert into `oc_t_item_location` (fk_i_item_id, s_city_area) values ('$id', '$telbd')");
  249.         mysqli_query($db_connect, "insert into `oc_t_item_resource` (fk_i_item_id, s_name, s_extension, s_content_type, s_path) values ('$id', 'img', 'jpg', 'image/jpeg',  'oc-content/uploads/')");
  250.  
  251.     }
  252. }
  253.  
  254. foreach ($links as $l) {
  255.     set_time_limit(0);
  256.     $html = curl_content($l);
  257.     phpQuery::newDocument($html);
  258.     $menu = pq('#offers_table')->find('.breakword');
  259.     $prices = pq('.space')->find('a.detailsLink');
  260.     $category = pq('.color-9>small')->text();
  261.     //echo $category;
  262.  
  263.     foreach ($menu as $res) {
  264.  
  265.         $pqres = pq($res);
  266.         $linkarray = $pqres->find('a')->attr('href');
  267.         $pricearray = $pqres->find('p.price>strong')->text();
  268.         $title = $pqres->find('a.marginright5>strong')->text();
  269.         $img = $pqres->find('img.fleft')->attr('src');
  270.         $url = $linkarray;
  271.  
  272.         // list($content, $json) = get_phone_number($url);
  273.  
  274.         phpQuery::newDocument($content);
  275.         $htmlcon = pq('#textContent>p')->text();
  276.         $big_img = pq('.photo-glow')->find('img')->attr('src');
  277.         $name = pq('.offer-user__details>h4')->find('a')->text();
  278.         phpQuery::newDocument($json->value);
  279.         $tel = pq('span')->text();
  280.  
  281.  
  282.         if (empty($tel)) {
  283.             $tel = $json->value;
  284.         }
  285.  
  286.         $resarray = array(
  287.             'imglink' => $img,
  288.             'link' => $linkarray,
  289.             'price' => $pricearray,
  290.             'title' => $title,
  291.             'tel' => $tel,
  292.             'content' => $htmlcon,
  293.             'name' => $name,
  294.         );
  295.  
  296.         $linkimgbd = $resarray['imglink'];
  297.         $linkbd = $resarray['link'];
  298.         $pricebd = $resarray['price'];
  299.         $titlebd = $resarray['title'];
  300.         $telbd = $resarray['tel'];
  301.         $namedb = $resarray['name'];
  302.         $contentbd = $resarray['content'];
  303.  
  304.  
  305.         //echo $category . "<br>";
  306.  
  307.  
  308. //var_dump($catt);
  309.         // get_img_by_name($db_connect, $linkimgbd);
  310.         // $r = price_replace($pricebd);
  311.         $rep = category_replace($category, $replace);
  312.  
  313.         $sql = mysqli_query($db_connect, "SELECT `fk_i_category_id`, `s_name` FROM `oc_t_category_description` WHERE 1");
  314.         $result = mysqli_fetch_all($sql);
  315.  
  316.         foreach ($result as $t) {
  317.  
  318.             if ($rep == $t) {
  319.                 echo "gfd";
  320.             }
  321.         }
  322.  
  323.         //insert_querys($db_connect, $titlebd, $r, $namedb, $contentbd, $telbd);
  324.  
  325.  
  326.     }
  327. }
  328.  
  329. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement