Jump to content
  • 0

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


Totalist
 Share

Question

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

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

можно написать парсер, который забирал бы все что вам нужно с нужной страницы
в этом вам может помочь 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){
			...
		}
	}
}

 

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0
Цитата

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

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

Цитата

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

т.е. вы хотите, чтобы я вам сделал парсер?
В чем проблемы возникли?
Для работы с 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, ищем нужные нам данные и записывать их куда-то
}

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy