Парсинг и анализ топ рейтинга Самиздата (samlib.ru) v2.02 (СКД, XPath, Управляемые и обычные формы)

Обмен - Интеграция с WEB

СКД парсинг HTML XPath

31
Хочется почитать хорошую книгу? На сайте Самиздата samlib.ru публикуются сотни интереснейших книг... и тысячи, читать которые далеко не так интересно.

 

Хочется почитать хорошую книгу? На сайте Самиздата zhurnal.lib.ru публикуются сотни интереснейших книг... и тысячи, читать которые далеко не так интересно.

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

v2.02  Переписано под СКД. Парсинг теперь делается средствами XPath через временный файл.  Скорость загрузки страниц увеличилась в разы.  Система хранит данные предыдущей загрузки рейтинга и позволяет отлавливать тренды с помощью фильтров СКД. Например, можно отловить быстро набирающие популярность, отсортировав по изменению количества проголосовавших. Пока убран индикатор загрузки. Парсинг осуществляется на сервере и индикация процесса без изменения конфигурации и без замедления парсинга оказалась твердым орешком.

Для работы нужна 8.3+. Работает в любой конфигурации.

Сделано, в основном, что б поиграться с еще  неопробованными мной технологиями.

v1.15 Добавлен индикатор прогресса загрузки страниц рейтинга, добавлен список жанров исключений. (Например, если вы захотите отсеять любовные романы)

За основу взята //itshnik22.ru/public/15955/.

Заранее благодарен за все комментарии и замечания.

 

31

Скачать файлы

Наименование Файл Версия Размер
Парсинг и анализ топ рейтинга Самиздата (samlib.ru) v2.02 (СКД, XPath, Управляемые и обычные формы) 1С 8.3+
.erf 87,43Kb
20.10.16
23
.erf 2.05 87,43Kb 23 Скачать
Загрузка рейтинга публикаций на самиздате 1.15 (8.1 ,без СКД, без XPach)
.epf 24,79Kb
20.10.16
82
.epf V 2.03 24,79Kb 82 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. СергейКа 657 16.12.10 17:32 Сейчас в теме
Неплохо было бы прикрутить обработку прерывания.
А то промахнулся с количеством страниц - и можно ждать до "морковкиного заговенья" :)
А так же добавить в описание, что на управляемой форме не работает.
2. milkers 2050 16.12.10 20:54 Сейчас в теме
3. Yashazz 2301 21.12.10 17:46 Сейчас в теме
Времени копаться нету, а любопытно, потому вопрос: делали разбором DOM-модели?
4. milkers 2050 21.12.10 21:20 Сейчас в теме
(3)Нет. Поиск начала таблицы и конца таблицы. И обычный и парсинг.
6. milkers 2050 08.01.11 19:18 Сейчас в теме
5. tango 483 08.01.11 17:33 Сейчас в теме
7. graphbuh 184 21.08.14 15:14 Сейчас в теме
Интересно, а можно добавить функцию скачивания (допустим, в какую то директорию) и поиска по ключевым словам (допустим, используя яндекс). Учитывая конструкцию сайта это непросто, но всегда хочется невозможного )) уж такие мы , программисты
8. milkers 2050 21.08.14 15:58 Сейчас в теме
(7) graphbuh, можно сделать и гораздо лучше. Но если честно, даже не смотря на то что я на больничном жалко времени и сил, на то чтоб переделывать работающую вещь, особенно с не очень востребованным здесь функционалом. По хорошему, чтоб сделать утилиту современной надо сделать две вещи: избавиться от программного парсинга и передавать таблицу в компоновку данных, где пользователь сможет сам настраивать фильтры. Меня вполне устраивает текущий вариант.
9. milkers 2050 20.10.16 17:22 Сейчас в теме
(0) Выложил Парсинг и анализ топ рейтинга Самиздата v2.02 Переписано под СКД. Парсинг теперь делается средствами XPath через временный файл. Скорость загрузки страниц увеличилась в разы. Система хранит данные предыдущей загрузки рейтинга и позволяет отлавливать тренды с помощью фильтров СКД. Например, можно отловить быстро набирающие популярность, отсортировав по изменению количества проголосовавших. Пока убран индикатор загрузки. Парсинг осуществляется на сервере и индикация процесса без изменения конфигурации и без замедления парсинга оказалась твердым орешком.

Для работы нужна 8.3+. Работает в любой конфигурации.
10. desarz 60 09.11.16 17:44 Сейчас в теме
Преобразование значения к типу Число не может быть выполнено. Не работает однако :(
11. milkers 2050 09.11.16 21:02 Сейчас в теме
(10) desarz, Какая версия платформы, какая из обработок (их 2). Ну и в какой конфигурации запускали, в каком клиенте.
12. milkers 2050 12.02.18 16:40 Сейчас в теме
(0) Исправлена ошибка загрузки, возникшая при изменение дизайна страницы (добавлении рекламных блоков)
13. qazaas 15.10.18 16:43 Сейчас в теме
(0)(12)
{ВнешнийОтчет.ПарсингИАнализТопРейтингаСамиздата.Форма.ФормаОтчетаУправляемая.Форма(711)}: Ошибка при вызове конструктора (COMОбъект)
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
по причине:
-2147221164(0x80040154): Класс не зарегистрирован

P.S.: Что-то я не обнаружил там XPath.
14. milkers 2050 16.10.18 10:10 Сейчас в теме
(13) Напишите пожалуйста операционную систему, версию платформы и конфигурации 1С.
MSScriptControl.ScriptControl -не относится к XPath никак, вспомогательный инструмент, для подсчета времени формирования отчета.
Почему в Вашей системе не получается создать этот Com-объект - большой вопрос. У Вас не линукс случайно?
В принципе подсчет времени можно убрать из кода совсем, на результат это не влияет.
15. qazaas 16.10.18 12:10 Сейчас в теме
(14) Да это не очень важно. Если уж на то пошло, то могу и просто закомментировать это - не проблема. Я в 1С-ке разбираюсь)
У меня Windows 10, все обновления стоят. Microsoft Visual C++ Redistributable 2005, 2008, 2010, 2012, 2013, 2017 + последняя студия. Версия 1С 8.3.12.1616, конфигурация самописная.

И кстати, еще ругалось на "ПараметрыСеанса.ТекущийПользователь". Понял, что вы ее(обработку) использовали только в типовых конфигурациях, но лучше, думаю, изменить данную строку на "ПользователиИнформационнойБазы.ТекущийПользователь()".

Сейчас вот еще раз протестировал. Нашел еще одну ошибку - при выделении картинки "Самиздат" (достаточно просто по ней щелкнуть) появляется ошибка "Поле не обнаружено (Низ)" - указывает на функцию управляемой формы (я тестировал в управляемом режиме)
фПолучитьСуммуЧиселВыделеннойОбластиТабДок

строку
Для ЯчВерт = ВыделеннаяОбласть.Верх По ВыделеннаяОбласть.Низ Цикл

При отладке, в выделенной области свойство "Верх" имеется, а свойства "Низ" нет.

Про XPath - у вас в публикации написано, что она использует XPath. Так вот, проглядывать весь код, понятное дело, муторно, поэтому воспользовался поиском с ключевым словом "XPath", в надежде найти, что-то типа "ВычислитьВыражениеXPath", но увы - ничего не нашел. Потому и написал.

P.S. качал обработку с целью найти какие-либо новые методы для парсинга сайтов, но ваш метод я уже встречал. Эх... Но все равно спасибо за ваш труд.
16. milkers 2050 07.11.18 16:38 Сейчас в теме
(0) Изменился формат сайта, добавили рекламу. Подправил обработку, чтоб работала.
Оставьте свое сообщение