1. Вниманию авторов!

    Темы из разделов платных услуг удаляются, если:
    • тема создана более 2-х месяцев назад И
    • внутри темы не ведётся активных обсуждений задачи И
    • автор не уведомил администрацию об актуальности задачи.
    Так же тема будет удалена, если:
    • есть подозрение на мошеннические действия со стороны автора;
    • в задаче предлагается оказать содействие в разработке ресурсов, направленность которых противоречит законодательству РФ и моральным устоям здорового общества.
    Dismiss Notice

Joomla 3.x Восстановить работу парсера или сделать новый

Discussion in 'Поиск специалистов (предложения работы)' started by pro100drug, Aug 8, 2015.

  1. pro100drug
    Offline

    pro100drug Недавно здесь

    Joined:
    Aug 8, 2015
    Messages:
    7
    Likes Received:
    0
    Gender:
    Male
    Здравствуйте.
    Необходимо выполнить работу по восстановлению работы парсера значений цифр нефтяных котировок или сделать новый.
    Сайт-донор который был источником информации что-то изменил и теперь парсер не работает. Разработку парсера выполнял фрилансер, который пропал :(
    Потенциальным исполнителям за кодом парсера просьба писать в личные сообщения.
     
  2.  
  3. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    Исполнитель найден?
    Уже не один раз говорили, что в ваших же интересах, чтобы исполнители отписывались В ТЕМЕ. Тогда у нас будет возможность контролировать процесс и знать кто и как работает.
     
  4. pro100drug
    Offline

    pro100drug Недавно здесь

    Joined:
    Aug 8, 2015
    Messages:
    7
    Likes Received:
    0
    Gender:
    Male
    Нет, исполнитель не найден.
    Разумеется, если он был бы найден, то я сообщил в теме, что она более не актуальна.
     
  5. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    Что за парсер?
    Расширение для Joomla (компонент/модуль/плагин) или отдельный скрипт?
     
  6. pro100drug
    Offline

    pro100drug Недавно здесь

    Joined:
    Aug 8, 2015
    Messages:
    7
    Likes Received:
    0
    Gender:
    Male
    Ответил в ЛС.
     
  7. AKopytenko
    Offline

    AKopytenko Russian Joomla! Team Staff Member

    Joined:
    Sep 1, 2011
    Messages:
    1,963
    Likes Received:
    168
    Gender:
    Male
    Код (PHP):
    1. <?php
    2.  
    3. defined('_JEXEC') or die;
    4.  
    5. $jMenu = JFactory::getApplication()->getMenu("site");
    6. $lang = $jMenu->getActive()->language;
    7.  
    8. class myParseOil
    9. {
    10.    
    11.    public $urlBrent = 'http://ru.investing.com/commodities/brent-oil';
    12.    public $urlWti = 'http://ru.investing.com/commodities/crude-oil';
    13.    public $timeCache = 7200;
    14.    public $timeFile ='./cache/time_';
    15.  
    16.    public function init($url)
    17.    {
    18.    
    19.      if($url!='')
    20.      {  
    21.        $prefix = $this->getFileFromUrl($url);
    22.        if($this->getTimeFromCache($prefix)<time())
    23.        {
    24.          $content = $this->getPage($url);
    25.          $content = $this->getCurrent($content);
    26.          if($content!='')
    27.          {
    28.            $this->putTime($prefix);
    29.            $this->putData($content, $prefix);
    30.            return $content;
    31.          }
    32.          else
    33.          {
    34.            return $this->getData($prefix);
    35.          }
    36.        }
    37.        else
    38.        {
    39.          return $this->getData($prefix);
    40.        }
    41.      }
    42.    }
    43.    
    44.    public function getTimeFromCache($prefix)
    45.    {
    46.      if (file_exists($this->timeFile . $prefix))
    47.      {
    48.        $time = file($this->timeFile . $prefix);
    49.        return $time[0];
    50.      }
    51.      else
    52.      {
    53.        return 0;
    54.      }
    55.    }
    56.  
    57.    public function putData($data, $prefix)
    58.    {
    59.      file_put_contents('./cache/' . $prefix, $data);
    60.    }
    61.  
    62.    public function putTime($prefix)
    63.    {
    64.      $time = time()+$this->timeCache;
    65.      file_put_contents($this->timeFile . $prefix, $time);
    66.    }
    67.  
    68.    public function getData($prefix)
    69.    {
    70.      if (file_exists('./cache/' . $prefix))
    71.      {
    72.        $data = file('./cache/' . $prefix);
    73.        if($data[0]){
    74.          return $data[0];
    75.        }
    76.      }
    77.    }
    78.    
    79.    public function getFileFromUrl($url)
    80.    {
    81.      $pathInfo = pathinfo($url);
    82.      return $pathInfo['basename'];
    83.    }
    84.    
    85.    public function getPage($url)
    86.    {
    87.      $context = stream_context_create(array('http'=>array('header' => "User-Agent: Opera/9.80 (Windows NT 6.1; WOW64; MRA 6.2 (build 7184)) Presto/2.12.388 Version/12.17", )));
    88.      $contentBrent = file_get_contents($url, false, $context);
    89.      return $contentBrent;
    90.    }
    91.    
    92.    public function getCurrent($content)
    93.    {
    94.      preg_match('/id="last_last" dir="ltr">(.*?)<\/span>/is', $content, $match);
    95.      if(isset($match[1]))
    96.      {
    97.        return $match[1];
    98.      }
    99.    }
    100. }
    101.  
    102. $oil = new myParseOil;
    103.  
    104. if ($lang == 'ru-RU')
    105. {
    106.    echo '<div class="oil"><div class="oil_word">Нефть</div>';
    107. }  
    108. else if ($lang == 'en-GB')
    109. {
    110.    echo '<div class="oil"><div class="oil_word">Oil</div>';
    111. }
    112.  
    113. echo 'WTI Crude Oil $', $oil->init($oil->urlWti);
    114. echo '<br />';
    115. echo 'Brent Crude Oil $', $oil->init($oil->urlBrent);
    116. echo '</div>';
    117.  
    118. ?>

    ?:\
     
  8. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    в строке 94 лучше заменить это
    Код (CODE):
    1. /id="last_last" dir="ltr">(.*?)<\/span>/is

    на это
    Код (CODE):
    1. #last_last".*?>(.*?)<.*?>#is
     
    pro100drug likes this.
  9. pro100drug
    Offline

    pro100drug Недавно здесь

    Joined:
    Aug 8, 2015
    Messages:
    7
    Likes Received:
    0
    Gender:
    Male
    Большое Спасибо!
    Работает, только жаль, что не вовремя. Уже переделали этот парсер :(

    Тема более не актуальна. Спасибо ещё раз большое всем откликнувшимся. Очень уважаю таких людей. Добра вам и успехов. Обязательно к вам вернусь.
     
  10. woojin
    Offline

    woojin Местный Staff Member => Cпециалист <=

    Joined:
    May 31, 2009
    Messages:
    3,204
    Likes Received:
    334
    Gender:
    Male
    бывает!
    ни чего страшного!
    обращайся ;)
     

Share This Page

Loading...