Как работает инструмент для парсинга веб-страниц в автоматических коллекциях?

Енот
Новичо́к, через «о́»
Регистрация
11 Окт 2018
Сообщения
292
#1
Алиса, расскажи как пользоваться и что можно им парсить. Как например парсить с iframe или videocdn ?

ОТВЕТ:

 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,211
#2
Алиса, расскажи как пользоваться и что можно им парсить. Как например парсить с iframe или videocdn ?
1572436377309.png

Вам нужно найти сайт на котором используют ID КиноПоиск и брать конкретно ID КиноПоиск для автообновления коллекций.

Пример, берем URL самого популярного торрент сайта:

http://rutracker.org/forum/viewforum.php?f=1950

1572436955332.png

Смотрим как выглядят ссылки на новость и составляем RegExp:

href="(viewtopic\.php\?t=[0-9]{1,8})"\sclass="torTopic\sbold\stt-text">

1572436876974.png

Находим в новости ID КиноПоиска и составляем RegExp:

kinopoisk\.ru\/([0-9]{3,10})\.gif

1572437107451.png

Теперь всё собираем воедино:

КаждыйЧас~ЗаходитьНаURL~НаходитьСсылкуНаНовости~НаходитьIDКиноПоискаВНовостях~СохранятьИхВКоллекцию

1~http://rutracker.org/forum/viewforum.php?f=1950~href="(viewtopic\.php\?t=[0-9]{1,8})"\sclass="torTopic\sbold\stt-text">~kinopoisk\.ru\/([0-9]{3,10})\.gif~poslednie-obnovleniya

И в коллекцию добавятся фильмы, ID КиноПоиск которых будут найдены на страницах.

1572458021898.png

Перед тем, как составлять RegExp условие, протестируйте его онлайн на regex101.com
  • Копируете весь HTML страницы нужного Вам сайта в regex101:
1572458733068.png

  • Составляем условие чтобы получить только тот текст, который нужен (он обводится скобками) и будет выделен зеленым цветом:
1572458697375.png
 
Енот
Новичо́к, через «о́»
Регистрация
7 Ноя 2018
Сообщения
203
#4
о каком инструменте речь? и что значит автообновление коллекций? новинки будут туда добавляться?
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,211
#6
о каком инструменте речь? и что значит автообновление коллекций? новинки будут туда добавляться?
В модуле Контент.
Коллекции фильмов будут обновляться, т.е. туда будут добавлять ID КиноПоиск фильмов, которые есть на сайте. Тем самым Вы показываете пользователям на главной странице актуальные на данный момент фильмы.
 
Новичо́к, через «о́»
Регистрация
22 Июл 2019
Сообщения
20
#7
1~http://rutracker.org/forum/viewforum.php?f=1950~href="(viewtopic\.php\?t=[0-9]{1,8})"\sclass="torTopic\sbold\stt-text">~kinopoisk\.ru\/([0-9]{3,10})\.gif~poslednie-obnovleniya
Алиса, твой пример полностью рабочий?

Такое дело, что у меня не работает твой пример, да и кучу своих я делал, ничего не происходит
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
4,211
#14
а для сериалов подойдет?
Для всего подойдет, если есть источник для получения ID КиноПоиск.

Обновить систему: cinemapress upd && cinemapress update

К примеру для получения последних сериалов на трекере:

Каждые 4 часа: 4
Заходить на страницу: http://rutor.info/seriali
Составляем RegExp новости: <a\shref="(\/torrent\/[0-9]{4,7}\/[a-zA-Z0-9_-]*?)">
Составляем RegExp ID КиноПоиск: kinopoisk\.ru\/film\/([0-9]{3,10})\/"

Собираем вместе:
4~http://rutor.is/seriali~<a\shref="(\/torrent\/[0-9]{4,7}\/[a-zA-Z0-9_-]*?)">~kinopoisk\.ru\/film\/([0-9]{3,10})\/"~poslednie-serii

Вот так можно показывать каждый день на главной странице только те фильмы, которые сейчас самые популярные в СНГ:

Каждые 12 часов: 12
Заходить на страницу: https://www.kinopoisk.ru/popular/
Заходить на новость: пусто, так как ID КиноПоиска уже есть
Составляем RegExp ID КиноПоиск: "obj([0-9]{3,10})"

Собираем вместе:
12~https://www.kinopoisk.ru/popular/~~"obj([0-9]{3,10})"~populyarnye-segodnya

И вывести коллекцию populyarnye-segodnya на главную.
 
Енот
Новичо́к, через «о́»
Регистрация
3 Мар 2018
Сообщения
307
#15
Для всего подойдет, если есть источник для получения ID КиноПоиск.

Обновить систему: cinemapress upd && cinemapress update

К примеру для получения последних сериалов на трекере:

Каждые 4 часа: 4
Заходить на страницу: http://rutor.info/seriali
Составляем RegExp новости: <a\shref="(\/torrent\/[0-9]{4,7}\/[a-zA-Z0-9_-]*?)">
Составляем RegExp ID КиноПоиск: kinopoisk\.ru\/film\/([0-9]{3,10})\/"

Собираем вместе:
4~http://rutor.is/seriali~<a\shref="(\/torrent\/[0-9]{4,7}\/[a-zA-Z0-9_-]*?)">~kinopoisk\.ru\/film\/([0-9]{3,10})\/"~poslednie-serii

Вот так можно показывать каждый день на главной странице только те фильмы, которые сейчас самые популярные в СНГ:

Каждые 12 часов: 12
Заходить на страницу: https://www.kinopoisk.ru/popular/
Заходить на новость: пусто, так как ID КиноПоиска уже есть
Составляем RegExp ID КиноПоиск: "obj([0-9]{3,10})"

Собираем вместе:
12~https://www.kinopoisk.ru/popular/~~"obj([0-9]{3,10})"~populyarnye-segodnya

И вывести коллекцию populyarnye-segodnya на главную.
Мозг взорвался
 
Енот
Новичо́к, через «о́»
Регистрация
7 Ноя 2018
Сообщения
203
#16
Ага, лучше видеоинструкцию
 
Новичо́к, через «о́»
Регистрация
7 Апр 2019
Сообщения
28
#17
Для всего подойдет, если есть источник для получения ID КиноПоиск
это, пожалуй, одно из лучших обновлений в новой версии.
проверил, все работает на ура.
есть ли такая же возможность парсинга не хтмл кода, а json, то есть поиск не по регекспу, а задавая ключи json?

вдогонку, каждый новый парсинг с новой строки же?
есть ли возможность временно закомментировать ненужную на данный момент строку, которую удалять не хочется, но и использовать тоже?
 
Последнее редактирование:
Новичо́к, через «о́»
Регистрация
7 Апр 2019
Сообщения
28
#18
а ниче что доступ к данному домену ограничен http://rutracker.org ?
парсинг идет через сервер, а ограничен рутрекер обычно для последней мили, то есть для обычных юзеров в России, для серверов нет такого ограничения, тем более если сервер в европе или америке
 
Енот
Новичо́к, через «о́»
Регистрация
2 Май 2019
Сообщения
101
#19
Извините что не туда пишу. Как работает "стол заказов"? Или еще в процессе создания..
 
Новичо́к, через «о́»
Регистрация
7 Апр 2019
Сообщения
28
#20
каждый новый парсинг с новой строки же?
это вижу в коде, что так и есть var parsers = modules.content.data.scraper.split('\n');

есть ли возможность временно закомментировать ненужную на данный момент строку, которую удалять не хочется
по этому поводу: вижу код if (parse.length === 5) {
то есть если длина массива для парсинга будет больше 5, то он проигнорируется, значит для комментирования можно просто добавить в конце строки ~NO