Totalist

Автоматизация (парсер, скрипт, виджет и др.) с афишей сайта КУЛЬТУРА.РФ

Recommended Posts

Уважаемые форумчане, подскажите, пожалуйста, парсер, скрипт, виджет или другое решение для размещения на сайте отдельной страницы или модального окна с информацией (фото + заголовок) от определенного автора с афиши сайта КУЛЬТУРА.РФ 
 
Какие есть варианты?

Share this post


Link to post
Share on other sites

можно написать парсер, который забирал бы все что вам нужно с нужной страницы
в этом вам может помочь simple_html_dom
вкратце должно получиться что-то вроде:
 

$html = file_get_html($url);
if(is_object($html)){
	$items = $html->find($elements);
	if(is_array($items) && count($items) > 0){
		foreach($items as $item){
			...
		}
	}
}

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

А как быть, если страниц много и их имена мне не известны (смотреть каждую?)?

Автоматизация нужна...

Share this post


Link to post
Share on other sites

суть парсера страницы выше есть
вход у вас идет через страницу https://www.culture.ru/afisha/chelyabinsk?page=1&limit=24 
на этой странице находите ссылки по которым парсите то что вам нужно
нужно сделать два алгоритма: парсир ссылок и страниц - два вложенных цикла

Share this post


Link to post
Share on other sites

А можно увидеть конкретный код для указанных алгоритмов?

К тому же, нужно еще учесть неотображаемые страницы - события прошлых лет.

Edited by Totalist

Share this post


Link to post
Share on other sites
Цитата

К тому же, нужно еще учесть неотображаемые страницы - события прошлых лет.

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

Цитата

А можно увидеть конкретный код для указанных алгоритмов?

т.е. вы хотите, чтобы я вам сделал парсер?
В чем проблемы возникли?
Для работы с xml документами можно использовать http://simplehtmldom.sourceforge.net/
Так же весь парсер можно разбить на функции, одна будет например парсить список мероприятий, другая данные по конкретному мероприятию....
 

require_once('simple_html_dom.php');

function parser_get_list($p = 1)
{
    $url = 'https://www.culture.ru/afisha/chelyabinsk?page='.$p.'&limit=24';
    $html = file_get_html($url);
    if(is_object($html))
    {
        $items = $html->find('.container_inner .entity-cards_item');
        if(is_array($items) && count($items) > 0)
        {
            foreach($items as $key=>$val)
            {
                $url = $val->find('a',0)->href;
                parser_get_page($url);
            }
            parser_get_list($p+1);
        }
        else
        {
            $items = $html->find('.empty-data-message');
            if(is_array($items) && count($items) > 0)
            {
                //список мероприятий кончился
            }
            else
            {
                //нет ни афиши ни информации о том что их нет - какая-то ошибка возможно
                //можно сделать обработку для них
            }
        }
    }
}
function parser_get_page($url)
{
    //проверяем есть ли данная запись у нас, если нет
    //аналогично функции parser_get_list, ищем нужные нам данные и записывать их куда-то
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Member Statistics

    46,331
    Total Members
    3,128
    Most Online
    god
    Newest Member
    god
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.