Влад: другие произведения.

Полуавтоматическая сборка списка "для siTop1000texts"

Журнал "Самиздат": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь]
Peклaмa:
Конкурс 'Мир боевых искусств.Wuxia' Переводы на Amazon
Конкурсы романов на Author.Today

Конкурс фантрассказа Блэк-Джек-20
Peклaмa
 Ваша оценка:
  • Аннотация:
    Среда, скрипты, обстоятельства и рекомендации.

См. также:
? Как узнать популярность произведения в "Самиздате" ("где/что смотреть" - основное, вкратце)
~ Рейтинг siTop1000texts ("Самиздат", самое популярное за 30 дней).
Disclaimer: Я не несу никакой ответственности за последствия касаемо. Далеко не факт, что у вас получится то, на что вы рассчитываете, если станете использовать нижеописанное. Пользуйтесь оным исключительно на свой страх и риск.
   ·       ·   
  / \     / \  
 ·---·---·---· 
      \ /      
       ·       
      / \      
     ·---·     
Полуавтоматическая сборка списка "для siTop1000texts"
Среда, скрипты, обстоятельства и рекомендации
(редакция:1.03, 2020.04.19)

   1. Введение

  Собрать свой список самых популярных (далее - "топовых") произведений (далее - "текст") несложно. Алгоритм сборки очевиден, так как опирается на статистику учёта посетителей "Самиздата" (далее - "СИ"):
  Учёт хитов в информационно-справочной системе СИ (далее - ИСС) позволяет получать сопоставимые данные внутри выборок в интервалах от двух дней до одиннадцати месяцев. Но если желательна сопоставимость данных между разными выборками, то максимальный интервал меньше - около девяноста дней.
  Но до начала сборки нужно определиться с размером собираемого списка, так как именно он определяет количество статистик, которые потребуется запросить в ИСС, а затем обработать. Основной критерий корректности списка текстов – уверенное превышение хитов замыкающего текста над хитами "за 12мес" замыкающего раздела обрабатываемых статистик. Поясню на примере сборки например списка из 100 топовых текстов (по состоянию ИСС на 17 апреля 2020 г.).
  Согласно списку в "siTop1000texts – 20.04.17", у сотого текста – 4704 хита. В "Рейтинге по количеству посетителей" (рейтинг "по хитам" за 2020.04.16) первым (с хитами меньше 4703) идёт раздел на 1070 месте с 4696 хитами. Иными словами, для получения корректного списка siTop100texts достаточно обработать 1070 топовых статистик. А для получения стабильно корректных списков, найденный оценочный объём /статистик/ стоит брать с запасом, например, +10% или +20% /к найденному объёму/.
  Отмечу ещё одно важное обстоятельство - потребные средства (и среда) для преобразования данных ИСС в итоговый список. В общем-то, они могут быть любыми, если доступны и обеспечивают рассматриваемое преобразование. В том числе, можно брать нужные данные непосредственно браузером, компонуя конечный список вручную.
  Ниже описаны средства (и среда), использованные мной для сборки /списков/ топовых 1000 текстов "за 30 дней". Кроме того, в описание включены некоторые рекомендации по развёртыванию предложенного и указаны существенные обстоятельства, которые стоит иметь в виду (при сборке).
  В качестве бонуса (для полноты вопроса;) приведены и тексты вспомогательных скриптов (наполнение и оформление рейтинга siTop1000texts).


   2. Среда и потребные средства

  Среда: Windows XP (далее - "WinXP");
  Сторонние бесплатные утилиты:
  Собственные скрипты (ссылки ведут к страницам с текстами скриптов).
  1. Универсальный скрипт "качалка" (вызывается из прочих *.cmd)
    • wGetUrl2fil.cmd - обвязка-пускач "качалки" wGet.exe.

  2. Основной комплект (сборка списка топовых текстов)
    • siTop-aHits.awk - обработчик страниц рейтинга "по хитам";
    • siTop-aHits.cmd - обвязка-пускач siTop-aHits.awk;
    • siTop-bStat.awk - обработчик статистик разделов;
    • siTop-bStat.cmd - обвязка-пускач siTop-bStat.awk.

  3. Вспомогательный комплект (наполнение и оформление siTop1000texts)
    • siTop-dText.awk - обработчик страниц с текстами;
    • siTop-dTextR.awk - обработчик страниц гостевых к текстам;
    • siTop-dTextV.awk - обработчик страниц оценок /к текстам/;
    • siTop-dText.cmd - обвязка-пускач siTop-dText.awk, siTop-dTextR.awk и siTop-dTextV.awk;
    • siTop-fHtml.awk - оформитель таблиц и справок;
    • siTop-fHtml.cmd - обвязка-пускач siTop-fHtml.awk.

   3. Обустройство комплекта (для сборки списка)

  Комплект настроен на работу со структурой (папка+подпапки) в корне диска U: (drive U:\). Проще всего спланировать выделенное место утилитой ОС subst.exe. Файлы скриптов можно разместить прямо в этом корне, а интерпретатор, "качалку" и файл обвязки "качалки" можно поместить или туда же, или в иную папку, прописанную в PATH.
  Обвязки siTop-aHits.cmd и siTop-bStat.cmd при первом запуске создают все папки, потребные для работы. Алгоритмы скриптов умеренно защищены от типовых проблем исполнения, а их тексты достаточно подробно от-комментированы. Все информационные и аварийные сообщения, выдаваемые на экран в процессе работы - на английском языке. Зато в комментариях можно встретить и фразы на русском. ;)
  Конечный (итоговый) список - U:\#siTop\YYYY.mm.dd.bStat ("YYYY.mm.dd" - дата верхней границы интервала в 30 дней, а "U:\#siTop\" - общая корневая папка для рабочих подпапок и файлов комплекта).

  NB#1. Обратите внимание на настройку даты и времени в ОС. Должно быть:
  - "YYYY.mm.dd" - дата (например, 2020.03.25);
  - "HH:MM:SS" - время (например, 17:25:49).


   4. Обстоятельства, подлежащие учёту (при сборке)

  4.1. Свежие данные по статистике посещений (хиты текстов в статистиках разделов) обычно публикуются блоками "+48часов" в двухтактном режиме (двухсуточный цикл). Причём, в первые сутки публикуется ~70% очередного блока данных, а во вторые - оставшееся.
  4.2. Иногда (довольно редко) наблюдается трёхсуточный цикл публикации, при котором во-вторые сутки публикуется ~25% блока, а остаток - в третьи.
  4.3. Момент отсечения очередной свежей порции данных в блок: ~00:18 МСК. Соответственно, в статистиках разделов, посуточные данные заведомо полны только для вторых и последующих /в прошлое/ суток. А в данных за первые сутки - только то, что сочлось за упомянутые 18 минут.
  4.4. Суточный такт обновления очередной порции статистик разделов начинается примерно в 00:18, длится час-два и, как правило, заканчивается к 02:30 МСК.
  4.5. Обычно, некоторая /незначительная - меньше процента от общего объёма/ часть статистик обновляется с запозданием на несколько суток. Как правило, это статистики редко посещаемых разделов (в конце списка топовых разделов).

Пример#1. Распределение статистик по датам в первый день цикла обновления:
freshDate - 1-st_day  maxHits numTot
2020.04.03-2020.04.01      18      2
2020.04.04-2020.04.03      68      1
2020.04.05-2020.04.03     301      8
2020.04.06-2020.04.05     281     19
2020.04.07-2020.04.05   67382   3113
2020.04.08-2020.04.07   79117   6828
Здесь:
• freshDate - дата обновления статистики;
• 1-st_day - дата первого полного дня в посуточных данных;
• numTot - количество статистик в группе таковых.
• maxHits - макс. хиты, замеченные в этой группе;
Пример#2. Распределение статистик по датам во второй день цикла обновления:
freshDate - 1-st_day  maxHits numTot
2020.04.03-2020.04.01      18      2
2020.04.04-2020.04.03      68      1
2020.04.06-2020.04.05     281     19
2020.04.07-2020.04.05     129      7
2020.04.08-2020.04.07   79117   6842
2020.04.09-2020.04.07   59839   3115
  NB#2. Обратите внимание на расклад по датам во втором примере. Такой расклад позволяет собрать корректный список топовых текстов /по имеющимся данным/.

  4.6. Обновление "Рейтинга по количеству посетителей" (рейтинг "по хитам") связано с обновлением статистик разделов и также выполняется тактами (после завершения соответствующего такта обновления этих статистик):
  * после 02:30 первого дня обновления статистик, рейтинг очищается и начинает заполняться свежими данными за этот день;
  + в последующие дни последовательно добавляются новые порции данных;
  = в последний день цикла /очередное/ обновление рейтинга завершается.
  Соответственно, доступность полного рейтинга (примерно 1000 страниц) - около 20 часов (из цикла обновления), но может оказаться и меньше.

  NB#3. Обратите внимание - при сборке нашего списка требуются данные именно полного рейтинга.

  4.7. Иные обстоятельства, сборки касаемо:
  • при построении списка *.aHits, исключаются разделы без текстов (априори неинтересны) и разделы без ФИО/псевдонима владельца (априори не в порядке);
  • при построении списка *.bStat, выбираются тексты, набравшие не менее 400 хитов за 30 дней (топовые тексты априори будут учтены).
  • предложенный комплект настроен и ориентирован на сборку топовых текстов в рамках: "1000 текстов за 30 дней", но это - скрипты. То есть, вполне возможно всё перенастроить на иные рамки, хотя и придётся серьёзно разобраться с тем, как они (эти скрипты) устроены и работают.


   5. Порядок сборки

  Однократный запуск
  NB#4. Обратите внимание - если в имени итогового списка *.bStat, стоит суффикс ".~" (например, "2020.04.09.~.bStat"), то этот список использовать НЕЛЬЗЯ!

  Повторяющиеся запуски (существенные обстоятельства)
  NB#5. Обратите внимание - мой комплект скриптов ориентирован именно на схему "частями, но ежедневно". Если она не подходит - нужно перед каждой сборкой /очередного списка/ принудительно удалять папку U:\#siTop\#bStat. Для чего можно использовать второй параметр, запуская команду: siTop-bStat.cmd anyKey killAll.


   6. Заключение

  Я использую изложенный подход уже более полутора лет. Сказанного /выше/ достаточно для осторожной работы в штатном состоянии СИ. К сожалению, оное наблюдается далеко не всегда. Например, за 107 дней (начиная с 12.08.2019) набралось 16 дней (4 отдельных интервала) с теми или иными проблемами.
  Иными словами, встроенных в скрипты проверок решительно недостаточно для постоянной надёжной и уверенной работы с данными СИ. Потребуется "въехать" в механику учёта посетителей и набраться практического опыта, наблюдая поломки оной /механики/, всякие и всяческие, увы.
  Впрочем, всё сказанное сгодится и для медитаций "о вечном", например... ;)))

(copyleft 2020 /\/.\/.\/.)

 Ваша оценка:

Популярное на LitNet.com В.Чернованова "Попала! или Жена для тирана"(Любовное фэнтези) А.Кутищев "Мультикласс "Турнир""(ЛитРПГ) В.Кретов "Легенда 4, Вторжение"(ЛитРПГ) М.Атаманов "Альянс Неудачников-2. На службе Фараона"(ЛитРПГ) К.Юраш "Процент человечности"(Антиутопия) А.Завадская "Архи-Vr"(Киберпанк) Л.Вериор "Другая"(Любовное фэнтези) А.Тополян "Механист 2. Темный континент"(Боевик) К.Федоров "Имперское наследство. Вольный стрелок"(Боевая фантастика) Л.Лэй "Над Синим Небом"(Научная фантастика)
Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
Э.Бланк "Институт фавориток" Д.Смекалин "Счастливчик" И.Шевченко "Остров невиновных" С.Бакшеев "Отчаянный шаг"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"