X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Парсер календаря новинок
k0ttee
k0ttee
Topic Starter сообщение 25.11.2014, 21:41; Ответить: k0ttee
Сообщение #1


Когда на сайте описывается что-то что еще не вышло, пользователям могут быть интересны даты выхода.
Втыкать все руками не очень интересно и парсер спешит на помощь.

Не очень давно пилил (точнее тырил с другого сайта) календарь выхода новых серий. Заказчик не заплатил, поэтому код летит в паблик.

Выхлоп делается в файл, а из файла можно выводить в статичную страницу. Обновление можно повесить на 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:


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
prolisk
prolisk
сообщение 25.11.2014, 22:52; Ответить: prolisk
Сообщение #2


Стили вывода того что тащит задать можно?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 26.11.2014, 8:45; Ответить: k0ttee
Сообщение #3


Стили вывода того что тащит задать можно?

Так оно тупо в файл сваливает, особо не стилтзуя (смотрите реплейсы классов в коде). Вот тут более чистый выхлоп (без шаблона сайта, только вывод от парсера) _http://animeteatr.ru/su_kalendar/parser.php

Потом из файла (или если осилите в базу записать) выводить со своими стилями.
Или, если надо именно это - можно не возиться с кодом, а таскать готовое с http://animeteatr.ru/su_kalendar/parser.php подцеплять свои стили и готово.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыA-Parser 1.1 - продвинутый парсер ПС, кейвордов, контента, показателей, 70+ парсеров.
351 Forbidden 277477 11.3.2024, 13:49
автор: AParser_Support
Открытая тема (нет новых ответов) Бесплатный парсер бот в Телеграм - [Parser Pro]
5 Parser_Pro 3264 27.1.2024, 16:12
автор: Parser_Pro
Открытая тема (нет новых ответов) WebArchiveMaster - парсер Вебархива
Добыча контента из ВебАрхива
16 footashes 12223 23.11.2022, 16:36
автор: kuz999
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлы⚡ AvitoSmart - быстрый парсер новых объявлений на Авито на запросах
Представляю парсер для [b]Zennoposter[/b]'a или [b]Zennobox[/b]
0 akcium 1237 19.11.2022, 13:05
автор: akcium
Открытая тема (нет новых ответов) Tubes Clip One - парсер тубов
21 xoopw 20743 16.4.2021, 17:30
автор: xoopw


 



RSS Текстовая версия Сейчас: 19.3.2024, 6:52
Дизайн