Регулярное выражение не получает текст

274
29 августа 2017, 13:15

Есть проект и там стоит задача, спарсить данные в свое приложение с определенного сайта. Парсить ссылки на новости у меня получилось, но у этого сайта стоит непонятный движок, который строит замудренные схемы блоков на сайте, в итоге текст статьи не хочет парситься. Пытаюсь это делать таким кодом:

$ch = curl_init();
$link = "http://24gadget.ru/1161065298-mnogofunkcionalnyy-chehol-dlya-noutbukov-serii-macbook-pro-9-foto-video.html";
curl_setopt($ch, CURLOPT_URL, $link); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($ch); 
curl_close($ch);
preg_match("~<div class=\"full-text clearfix\">(.*?)</div>~",$result,$text);
print_r($text);

Но в итоге приходит пустой массив. В чем может быть пробелма и как ее можно исправить, получив текст?

UPD: Если получать <article>, таким кодом:

preg_match_all("~<article class=\"news-announce\">(.*?)</article>~is",$result,$text);

то на выходе я получаю такой html код:

<article class="news-announce"> 
  <h1>Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)</h1> 
 
  <div class="announce-meta clearfix"> 
    <div class="announce-date"> 
      <span class="date">25 августа 2017</span> | <a href="http://24gadget.ru/gadget/">Гаджет новости</a>, <a href="http://24gadget.ru/apple/">Apple</a>, <a href="http://24gadget.ru/usb/">Периферия / USB</a>, <a href="http://24gadget.ru/pc/">ПК и Ноутбуки</a> 
    </div> 
  </div> 
 
 
  <div class="full-text clearfix"> 
    <div id="news-id-1161065298" style="display:inline;"> 
      <div align="center"> 
        <!--TBegin--> 
        <a href="/uploads/posts/2017-08/1503662457_dockcase-001.jpg" onclick="return hs.expand(this)"><img src="/uploads/posts/2017-08/thumbs/1503662457_dockcase-001.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"></a> 
        <!--TEnd--> 
      </div><br>Чехол DockCase не только защищает дорогостоящий Apple Macbook Pro от механических повреждений и непогоды, но и облегчает эксплуатацию техники. Через порты гаджета, которых в яблочной продукции явно недостаточно, к ноутбуку можно подключить множество 
      устройств. А про многочисленные переходники можно забыть навсегда.<br><br> 
      <div align="center"> 
        <!--TBegin--> 
        <a href="/uploads/posts/2017-08/1503662488_dockcase-002.jpg" onclick="return hs.expand(this)"><img src="/uploads/posts/2017-08/thumbs/1503662488_dockcase-002.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"></a> 
        <div class="post-banner"> 
          <style> 
            #banner_place { 
              display: none; 
            } 
             
            #banner_close { 
              float: right; 
              font-size: 25px; 
              color: black; 
              text-decoration: none; 
              margin-right: 20px; 
            } 
             
            #banner_content { 
              padding: 0 20px; 
            } 
             
            #banner_content::before { 
              content: 'Реклама '; 
              border-top: 1px solid #eee; 
              color: #ccc; 
              display: block; 
              margin-bottom: 10px; 
            } 
             
            #banner_content::after { 
              display: block; 
              border-bottom: 1px solid #eee; 
              content: ' '; 
              padding-top: 15px; 
            } 
          </style> 
          <div id="banner_place" style="display: none"> 
            <a id="banner_close" onclick="banner_close()" href="javascript:void(0)">×</a> 
            <div id="banner_content"> 
              <iframe id="tvzavr_iframe" src="//vn7.iframe.tvzavr.ru/iframe/index.html?cid=23890&amp;rolloutmute=1&amp;autoplay=1&amp;after_roll=1" style="border:none;width:640px;height:360px;margin:0px auto;"></iframe> 
            </div> 
          </div> 
          <script src="http://pagead2.googlesyndication.com/pagead/js/r20170821/r20170110/show_ads_impl_single_load.js"></script> 
          <script src="https://pagead2.googlesyndication.com/pub-config/r20160913/ca-pub-2861464200338808.js"></script> 
          <script> 
            function banner_close() { 
              $.cookie('banner_close', 1, { 
                path: '/', 
                expires: 0.25 
              }); 
              $('#banner_place').hide(); 
            } 
 
            if ($.cookie('banner_close')) 
              $('#banner_place').hide(); 
            else 
              $('#banner_place').show(); 
          </script> 
        </div> 
        <!--TEnd--><br><br> 
        <!--TBegin--> 
        <a href="/uploads/posts/2017-08/1503662427_dockcase-003.jpg" onclick="return hs.expand(this)"><img src="/uploads/posts/2017-08/thumbs/1503662427_dockcase-003.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"></a> 
        <!--TEnd--> 
      </div><br>Производитель устройства уверен, что за счёт своего лаконичного и аккуратного внешнего вида аксессуар подчёркивает гармонию минималистичного дизайна «яблочной» электроники. Что касается технических характеристик, чехол оборудован всеми недостающими 
      разъёмами. В нём есть кардридер, дополнительные USB и HDMI, а также LAN Ethernet.<br><br> 
      <div align="center"> 
        <img src="/uploads/posts/2017-08/1503662423_dockcase-004.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <div class="post-banner"> 
          <div align="center"> 
            <br> 
            <script type="text/javascript"> 
              <!-- 
              google_ad_client = "ca-pub-2861464200338808"; 
              /* 24gadget_728x90-2 */ 
              google_ad_slot = "9519827899/6426659419"; 
              google_ad_width = 728; 
              google_ad_height = 90; 
              //--> 
            </script> 
            <script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"> 
            </script> 
 
          </div> 
        </div> 
        <br><br> 
        <img src="/uploads/posts/2017-08/1503662425_dockcase-007.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <br><br> 
        <img src="/uploads/posts/2017-08/1503662418_dockcase-008.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <div class="post-banner"> 
          <div align="center"> 
            <br> 
            <script type="text/javascript"> 
              <!-- 
              google_ad_client = "ca-pub-2861464200338808"; 
              /* 24gadget_728x90-3 */ 
              google_ad_slot = "9519827899/7903367299"; 
              google_ad_width = 728; 
              google_ad_height = 90; 
              //--> 
            </script> 
            <script type="text/javascript" src="//pagead2.googlesyndication.com/pagead/show_ads.js"> 
            </script><ins id="aswift_1_expand" style="display:inline-table;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:728px;background-color:transparent;"><ins id="aswift_1_anchor" style="display:block;border:none;height:90px;margin:0;padding:0;position:relative;visibility:visible;width:728px;background-color:transparent;"><iframe width="728" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match){try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_1" name="aswift_1" style="left:0;position:absolute;top:0;width:728px;height:90px;"></iframe></ins></ins> 
 
          </div> 
        </div> 
        <!--dle_image_end--> 
      </div><br>Стартап предлагает чехол в двух размерах: для 13-дюймовой и 15-дюймовой моделей. Цена аксессуара на этапе предзаказа составляет $79 и $89 соответственно.<br><br> 
      <div align="center"> 
        <!--dle_image_begin:/uploads/posts/2017-08/1503662458_dockcase-006.jpg|--><img src="/uploads/posts/2017-08/1503662458_dockcase-006.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <!--dle_image_end--><br><br> 
        <!--dle_image_begin:/uploads/posts/2017-08/1503662442_dockcase-005.jpg|--><img src="/uploads/posts/2017-08/1503662442_dockcase-005.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <!--dle_image_end--><br><br> 
        <!--dle_image_begin:/uploads/posts/2017-08/1503662472_dockcase-009.jpg|--><img src="/uploads/posts/2017-08/1503662472_dockcase-009.jpg" alt="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" title="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)"> 
        <!--dle_image_end--><br><br><iframe width="680" height="383" src="https://www.youtube.com/embed/jNxipkB2xmM?rel=0" frameborder="0" allowfullscreen=""></iframe></div><br>Источник: <a href="https://www.kickstarter.com/projects/767329947/dockcase-the-ultimate-dock-and-case-for-macbook-pr?" 
        target="_blank">kickstarter.com</a></div> 
 
  </div> 
 
  <div></div> 
 
  <div class="social-line"> 
    <div class="social-like"> 
      <div class="fb-like" data-href="http://24gadget.ru/1161065298-mnogofunkcionalnyy-chehol-dlya-noutbukov-serii-macbook-pro-9-foto-video.html" data-send="false" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div> 
    </div> 
    <div class="social-like"> 
      <div id="vk_like" class="js-vk-like-button" data-type="button" data-height="22" data-width="150"></div> 
    </div> 
    <div class="social-like"> 
      <div id="js-ok-like-button" class="js-ok-like-button" data-url="http://24gadget.ru/1161065298-mnogofunkcionalnyy-chehol-dlya-noutbukov-serii-macbook-pro-9-foto-video.html"></div> 
    </div> 
    <div class="social-like"> 
      <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://24gadget.ru/1161065298-mnogofunkcionalnyy-chehol-dlya-noutbukov-serii-macbook-pro-9-foto-video.html" data-text="Самый полезный чехол для ноутбуков Macbook Pro (9 фото + видео)" 
        data-lang="ru"></a> 
    </div> 
    <div class="social-like js-gp-like-button"> 
      <div class="g-plusone" data-size="medium" data-onstartinteraction="hidePopupDiv" data-width="100"></div> 
    </div> 
  </div> 
 
  <div style="height: 20px; line-height: 20px; margin: 20px 0"> 
    Понравился пост? Просоединяйтесь к нам в Facebook! 
    <div class="fb-like" data-href="https://www.facebook.com/24gadget" data-layout="button" data-action="like" data-show-faces="false" data-share="false" style="vertical-align: baseline;"></div> 
  </div> 
 
</article>

Но пытаясь извлечь <div class="full-text clearfix"> получаю пустой массив.

UPD2: Регулярными вырежаниями все таки можно получить нужный тег, но он тогда приходит без текста. Код регулярки:

preg_match_all("~<div class=\"full-text clearfix\">(.*?)</div>~is",$result,$text);

В итоге я получаю такой ответ:

<div class="full-text clearfix"> 
  <div id="news-id-1161065298" style="display:inline;"> 
    <div align="center"> 
    </div> 
  </div> 
</div>

А код на странице имеет такой вид:

<div class="full-text clearfix"> 
  <div id="news-id-1161065298" style="display:inline;"> 
    <div align="center"></div> 
    <br>Чехол DockCase не только защищает дорогостоящий Apple Macbook Pro от механических повреждений и непогоды, но и облегчает эксплуатацию техники. Через порты гаджета, которых в яблочной продукции явно недостаточно, к ноутбуку можно подключить множество 
    устройств. А про многочисленные переходники можно забыть навсегда.<br><br> 
    <div align="center"></div> 
    <br><br> 
  </div><br>Производитель устройства уверен, что за счёт своего лаконичного и аккуратного внешнего вида аксессуар подчёркивает гармонию минималистичного дизайна «яблочной» электроники. Что касается технических характеристик, чехол оборудован всеми недостающими 
  разъёмами. В нём есть кардридер, дополнительные USB и HDMI, а также LAN Ethernet.<br><br> 
  <div align="center"> 
 
  </div><br>Стартап предлагает чехол в двух размерах: для 13-дюймовой и 15-дюймовой моделей. Цена аксессуара на этапе предзаказа составляет $79 и $89 соответственно.<br><br> 
  <div align="center"></div><br>Источник: <a href="https://www.kickstarter.com/projects/767329947/dockcase-the-ultimate-dock-and-case-for-macbook-pr?" target="_blank">kickstarter.com</a></div>

READ ALSO
Показать/скрыть контент в nav-tabs bootstrap

Показать/скрыть контент в nav-tabs bootstrap

Использую плагин для Wordpress ACF plugin

264
Как работает Crawl Errors in Google?

Как работает Crawl Errors in Google?

В Веб-мастер от Google, получил Crawl ErrorsПоказывает что на странице есть ссылки при переходе на которые получается 503 ошибка

216
Передача массива с Php в Js

Передача массива с Php в Js

Помогите пожалуйста: имеется массив в реакте (скрин приложил)

204