Totalist

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

Рекомендованные сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Изменено пользователем Totalist

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

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

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

Цитата

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Статистика пользователей

    46 188
    Всего пользователей
    3 128
    Рекорд онлайна
    Marchysh
    Новый пользователь
    Marchysh
    Регистрация
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.