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

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

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

Тема в разделе "Поиск специалистов (предложения работы)", создана пользователем pro100drug, 08.08.2015.

  1. pro100drug
    Offline

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

    Регистрация:
    08.08.2015
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Здравствуйте.
    Необходимо выполнить работу по восстановлению работы парсера значений цифр нефтяных котировок или сделать новый.
    Сайт-донор который был источником информации что-то изменил и теперь парсер не работает. Разработку парсера выполнял фрилансер, который пропал :(
    Потенциальным исполнителям за кодом парсера просьба писать в личные сообщения.
     
  2.  
  3. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Исполнитель найден?
    Уже не один раз говорили, что в ваших же интересах, чтобы исполнители отписывались В ТЕМЕ. Тогда у нас будет возможность контролировать процесс и знать кто и как работает.
     
  4. pro100drug
    Offline

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

    Регистрация:
    08.08.2015
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Нет, исполнитель не найден.
    Разумеется, если он был бы найден, то я сообщил в теме, что она более не актуальна.
     
  5. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Что за парсер?
    Расширение для Joomla (компонент/модуль/плагин) или отдельный скрипт?
     
  6. pro100drug
    Offline

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

    Регистрация:
    08.08.2015
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Ответил в ЛС.
     
  7. shurikkan
    Offline

    shurikkan Russian Joomla! Team Команда форума

    Регистрация:
    01.09.2011
    Сообщения:
    1 856
    Симпатии:
    162
    Пол:
    Мужской
    Код (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 Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    в строке 94 лучше заменить это
    Код (CODE):
    1. /id="last_last" dir="ltr">(.*?)<\/span>/is

    на это
    Код (CODE):
    1. #last_last".*?>(.*?)<.*?>#is
     
    pro100drug нравится это.
  9. pro100drug
    Offline

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

    Регистрация:
    08.08.2015
    Сообщения:
    7
    Симпатии:
    0
    Пол:
    Мужской
    Большое Спасибо!
    Работает, только жаль, что не вовремя. Уже переделали этот парсер :(

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

    woojin Местный Команда форума

    Регистрация:
    31.05.2009
    Сообщения:
    3 209
    Симпатии:
    335
    Пол:
    Мужской
    бывает!
    ни чего страшного!
    обращайся ;)
     

Поделиться этой страницей

Загрузка...