Иконка ресурса

Модуль Парсер кинопоиск pkinopoisk v3.3.0 от 4mod

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
194
Реакции
83
Баллы
28
Снова КП что то поменял. Год и категории не парсятся.
Под год костыль есть, а вот под категории нужно дольше времени, так как КП поменял немного логику категорий.

Под год делаем следующее открываем /engine/ajax/plinopoisk.php

ищем

PHP:
'year'             => '#год</td>.{10,150}?m_act%5Byear%5D/[0-9]+/" title="">([0-9]+)</a>#is',
Примерно 1285 строка.

заменяем
PHP:
 '#год</td>.{10,150}?m_act%5Byear%5D/[0-9]+/" title="">([0-9]+)</a>#is',
на

PHP:
'#год</td>.{10,150}?quick_filters=films" title="">([0-9]+)</a>#is'
Чистим кеш сайта и пробуем .

По категориям если никто не выложит фикс, то буду свободен гляну и если что скину в тему.
 

Ruslan

Гуру
Кодер
Приватовец
Регистрация
22 Фев 2017
Сообщения
242
Реакции
135
Баллы
43
Под год костыль есть, а вот под категории нужно дольше времени, так как КП поменял немного логику категорий.

Под год делаем следующее открываем /engine/ajax/plinopoisk.php

ищем

PHP:
'year'             => '#год</td>.{10,150}?m_act%5Byear%5D/[0-9]+/" title="">([0-9]+)</a>#is',
Примерно 1285 строка.

заменяем
PHP:
 '#год</td>.{10,150}?m_act%5Byear%5D/[0-9]+/" title="">([0-9]+)</a>#is',
на

PHP:
'#год</td>.{10,150}?quick_filters=films" title="">([0-9]+)</a>#is'
Чистим кеш сайта и пробуем .

По категориям если никто не выложит фикс, то буду свободен гляну и если что скину в тему.
HTML:
<tr>
            <td class="type">год</td>
            <td><div style="position: relative">
                    <a href="/lists/navigator/2013/?quick_filters=serials" title="" data-popup-info="disabled">2013</a>                    <a href="/film/678296/episodes/" class="all" data-popup-info="disabled">(4 сезона)</a>                </div></td>
        </tr>
Сходи проверь, будет ли твоя регулярка работать

 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
194
Реакции
83
Баллы
28
HTML:
<tr>
            <td class="type">год</td>
            <td><div style="position: relative">
                    <a href="/lists/navigator/2013/?quick_filters=serials" title="" data-popup-info="disabled">2013</a>                    <a href="/film/678296/episodes/" class="all" data-popup-info="disabled">(4 сезона)</a>                </div></td>
        </tr>
Сходи проверь, будет ли твоя регулярка работать

Ссори провтыкал этого не учёл :) . Сейчас поправлю .
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
194
Реакции
83
Баллы
28
Вместо
PHP:
'#год</td>.{10,150}?quick_filters=films" title="">([0-9]+)</a>#is'

Ставим

'#год</td>.{10,150}?quick_filters=.*?" title=.*?>([0-9]+)</a>#is'
 

igrovik

Новичок
Регистрация
28 Июн 2017
Сообщения
194
Реакции
83
Баллы
28
Под жанр должно будет помочь, проверить на работоспособность не было где, так что если что сильно не пинайте!
Итак открываем /engine/ajax/pkinopoisk.php

Ищем
Код:
if (preg_match_all('#/(lists|level/10)/m_act%5Bgenre%5D/([0-9]+)/([^>]{1,25})?>(.*?)</a>#is', $post_data[$name], $matchCat, PREG_SET_ORDER)) {
Заменяем на

Код:
if (preg_match_all('#/(lists|level/).*?\?quick_filters=.*?">(.*?)</a>#is', $post_data[$name], $matchCat, PREG_SET_ORDER))
Чуть ниже примерно 1441

Код:
$valMC[4] = trim(strip_tags($valMC[4]));
if (!empty($valMC[4])) 
{
 $genre[] = $valMC[4];
}
Изменяем на

Код:
$valMC[2] = trim(strip_tags($valMC[2]));
if (!empty($valMC[2])) 
{
 $genre[] = $valMC[2];
}
Далее после

Код:
elseif ($name == 'genre') {
ставим
Код:
$ganr_array = array(
        'аниме'       => '1750',
        'биография'   => '22',
        'боевик'      => '3',
        'вестерн'     => '13',
        'военный'     => '19',
        'детектив'    => '17',
        'детский'     => '456',
        'для взрослых'   => '20',
        'документальный'   => '12',
        'драма'    => '8',
        'игра'   => '27',
        'история'   => '23',
        'комедия'    => '6',
        'концерт' => '1747',
        'короткометражка'   => '15',
        'криминал'   => '16',
        'мелодрама'    => '7',
        'музыка'   => '21',
        'мультфильм'   => '14',
        'мюзикл'    => '9',
        'новости'   => '28',
        'приключения'   => '10',
        'реальное ТВ'   => '25',
        'семейный'   => '11',
        'сериал'  => '999',
        'спорт'   => '24',
        'ток-шоу'   => '26',
        'триллер'    => '4',
        'ужасы'    => '1',
        'фантастика'    => '2',
        'фильм-нуар'   => '18',
        'фэнтези'    => '5',
);
Далее

Код:
if (isset($config_mod['cat_match'][$valMC[2]])) {
Изменяем на

Код:
if (isset($config_mod['cat_match'][$ganr_array[$valMC[2]]])) {
И
Код:
$cat_sel[] = $config_mod['cat_match'][$valMC[2]];
На
Код:
$cat_sel[] = $config_mod['cat_match'][$ganr_array[$valMC[2]]];
Чистим кэш сайта и пробуем.
 

MrAstute

Новичок
Регистрация
3 Фев 2019
Сообщения
1
Реакции
0
Баллы
1
Под жанр должно будет помочь, проверить на работоспособность не было где, так что если что сильно не пинайте!
Итак открываем /engine/ajax/pkinopoisk.php

Ищем
Код:
if (preg_match_all('#/(lists|level/10)/m_act%5Bgenre%5D/([0-9]+)/([^>]{1,25})?>(.*?)</a>#is', $post_data[$name], $matchCat, PREG_SET_ORDER)) {
Заменяем на

Код:
if (preg_match_all('#/(lists|level/).*?\?quick_filters=.*?">(.*?)</a>#is', $post_data[$name], $matchCat, PREG_SET_ORDER))
Чуть ниже примерно 1441

Код:
$valMC[4] = trim(strip_tags($valMC[4]));
if (!empty($valMC[4]))
{
$genre[] = $valMC[4];
}
Изменяем на

Код:
$valMC[2] = trim(strip_tags($valMC[2]));
if (!empty($valMC[2]))
{
$genre[] = $valMC[2];
}
Далее после

Код:
elseif ($name == 'genre') {
ставим
Код:
$ganr_array = array(
        'аниме'       => '1750',
        'биография'   => '22',
        'боевик'      => '3',
        'вестерн'     => '13',
        'военный'     => '19',
        'детектив'    => '17',
        'детский'     => '456',
        'для взрослых'   => '20',
        'документальный'   => '12',
        'драма'    => '8',
        'игра'   => '27',
        'история'   => '23',
        'комедия'    => '6',
        'концерт' => '1747',
        'короткометражка'   => '15',
        'криминал'   => '16',
        'мелодрама'    => '7',
        'музыка'   => '21',
        'мультфильм'   => '14',
        'мюзикл'    => '9',
        'новости'   => '28',
        'приключения'   => '10',
        'реальное ТВ'   => '25',
        'семейный'   => '11',
        'сериал'  => '999',
        'спорт'   => '24',
        'ток-шоу'   => '26',
        'триллер'    => '4',
        'ужасы'    => '1',
        'фантастика'    => '2',
        'фильм-нуар'   => '18',
        'фэнтези'    => '5',
);
Далее

Код:
if (isset($config_mod['cat_match'][$valMC[2]])) {
Изменяем на

Код:
if (isset($config_mod['cat_match'][$ganr_array[$valMC[2]]])) {
И
Код:
$cat_sel[] = $config_mod['cat_match'][$valMC[2]];
На
Код:
$cat_sel[] = $config_mod['cat_match'][$ganr_array[$valMC[2]]];
Чистим кэш сайта и пробуем.
Всё отлично работает. Спасибо.
 

Sonikflame

Новичок
Регистрация
9 Мар 2019
Сообщения
3
Реакции
0
Баллы
1
Добрый день, у меня у одного такая проблема? При добавлении сериала не парсит год. Кто поможет решить проблему.

2019-08-29_104750.png
 

Анна

Модератор
Команда форума
Приватовец
VIP
Прошёл марафон
Регистрация
23 Апр 2017
Сообщения
1.351
Реакции
540
Баллы
113

onis

Новичок
Регистрация
29 Июн 2017
Сообщения
122
Реакции
6
Баллы
18
А можете выложить обновльоный файлик с этеми поправками
 

onis

Новичок
Регистрация
29 Июн 2017
Сообщения
122
Реакции
6
Баллы
18
Привет сем всьо работает просто супер но вот бы подправить чтоб с этим работа было бы круто
«Rarandoi Veduka Chudham» (2017) пишет что не находит такого фильма
 
Сверху Снизу