Есть проект и там стоит задача, спарсить данные в свое приложение с определенного сайта. Парсить ссылки на новости у меня получилось, но у этого сайта стоит непонятный движок, который строит замудренные схемы блоков на сайте, в итоге текст статьи не хочет парситься. Пытаюсь это делать таким кодом:
$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&rolloutmute=1&autoplay=1&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&&s.handlers,h=H&&H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&&d&&(!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>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В Веб-мастер от Google, получил Crawl ErrorsПоказывает что на странице есть ссылки при переходе на которые получается 503 ошибка