Когда на сайте описывается что-то что еще не вышло, пользователям могут быть интересны даты выхода.
Втыкать все руками не очень интересно и парсер спешит на помощь.
Не очень давно пилил (точнее тырил с другого сайта) календарь выхода новых серий. Заказчик не заплатил, поэтому код летит в паблик.
Выхлоп делается в файл, а из файла можно выводить в статичную страницу. Обновление можно повесить на cron.
Написано на php с использованием библиотеки
simple_html_dom.php (ее можно качнуть из интернетов).
Кодъ:
<?php
$swag=file_get_contents('http://shikimori.org/ongoings');
$swag=preg_replace("#<div class=\"headline\">Комментарии(.*)#",null,$swag);
include('simple_html_dom.php');
$html=new simple_html_dom();
$html->load($swag);
$headline=$html->find('.headline');
foreach($headline as $headline){
$days[]=$headline->innertext;
}
$subcontent=$html->find('.subcontent');
foreach($subcontent as $subcontent){
$blocks[]=$subcontent->innertext;
}
$count_blocks=count($blocks)-1;
for($i=0; $i <= $count_blocks; $i++){
$block=$blocks[$i];
$day=new simple_html_dom();
$day->load($block);
$box=$day->find('.ongoing');
foreach($box as $box){
$x[]=$box->innertext;
}
$x=preg_replace("#<a[^>]*>#",null,$x);
$x=preg_replace("#</a>#",null,$x);
$x=preg_replace("#/>#",">",$x);
$x=preg_replace("#.jpg\?[^\"]*\"#",".jpg\"",$x);
$x=preg_replace("#alt=\"[^\"]*\"#",null,$x);
$x=preg_replace("#<span class=\"anons\">#",null,$x);
$x=preg_replace("#</span></span>#","</span>",$x);
$x=preg_replace("#<span#","<p",$x);
$x=preg_replace("#</span>#","</p>",$x);
$x=preg_replace("#misc time#","time",$x);
$x=preg_replace("# {1,}>#",">",$x);
$x=preg_replace("#src=\"#","src=\"http://shikimori.org",$x);
$x=preg_replace("# {2,}#"," ",$x);
$x=preg_replace("#<img#","<img class=\"cat_img\"",$x);
$anime[$days[$i]]=$x;
unset($x);
}
$content="<link rel='stylesheet' href='http://animeteatr.ru/su_kalendar/su_kalendar.css'>";
$content.="<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js'></script>";
$content.='<script>function k_spoler(str){if($("#supo_"+str).is(":visible")){$("#supo_"+str).toggle();$("#hider_"+str).html("[показать]")}else{$("#supo_"+str).toggle();$("#hider_"+str).html("[скрыть]")}}</script>';
$content.="<div align='right'><img style=\"cursor:pointer;\" src=\"http://animeteatr.ru/su_kalendar/update.png\" OnClick=\"$(this).load('http://animeteatr.ru/su_kalendar/parser.php')\"></div>";
$color=0;
foreach($anime as $day => $ani){
$content.="\n".'<div class="su_clear color'.$color++.'"><h2>'.$day.'<div OnClick="k_spoler('.$color.')" id="hider_'.$color.'" class="hider" style="float:right">[скрыть]</div></h2><div class="sub_cont" id="supo_'.$color.'">';
foreach($ani as $key => $it){
$content.='<a href="/?do=search&subaction=search&story='.preg_replace("#\"><.*#",null,preg_replace("#.*title=\"#",null,$it)).'" class="on_go">'.$it."</a>\n";
}
$content.="</div></div>\n";
}
$content=mb_convert_encoding($content,"cp1251","UTF-8");
file_put_contents('../templates/animeteatr2/kalendar.tpl',$content);
echo $content;
?>
Скрин выхлопа.
Тащит оно оттуда _http://shikimori.org/ongoings
Выводит оно туда _http://animeteatr.ru/raspisanie-vyhoda-novyh-serii-ongoingov.html
Если понадобится доработка - пишите в личку. :swoon: