15-01-2017, 13:43
Търся тестери
. Ако някой е заинтересован да тества wgmulti програмката, която направих за да си спестя време и автоматизирам "грабването" с WebGrab++, нека пише.
WTF е това wgmulti и за какво ни е?
"Скрапването" на сайтове отнема много време поради факта, че WebGrab+ работи последователно и извлича информация за каналите един по един, един след друг. Това е бавно особено ако извличате съдържание за стотици канали.
wgmulti ускорява процесa на "грабване", като стартира няколко (в зависимост от настройките) инстанции на WebGrab. За целта програмката обхожда главния конфигурационен файл на WebGrab и групира каналите според сайт на извличане (siteini).
След това създава локални конфигурационни файлове и стартира отделен WebGrab процес за всяка група канали. Процесите се изпълняват паралелно и независимo един от друг. След като грабването на всички групи канали завърши локалните ЕПГ-та се обединяват в едно голямо ЕПГ - същото като това, което бихте получили при грабване само с WebGrab. Разликата е че грабването ви е отнело много по-малко време и можете да излезете да пиете бира по-рано
Пример: Ако грабвате по 10 канала от 10 сайта (общо 100 канала), всеки канал отнема по 10 секунди.
Грабването с WebGrab ще ви отнеме 10*10*10 = 1000 секунди или около 16 минути.
С wgmulti грабването ще е паралелно за всеки сайт и времето ще отнеме 1 * 10 * 10 = 100 секунди или около 1 минута и 40 сек или 8 пъти по-бързо.
В допълнение (пак според настройка) времената на стартиране/завършване на предаванията се конвертират в локално време (защото иначе Коди показва грешни времена).
Пример: Ако дадена програма започва в 10:00 +0000 английско време, тя ще бъде конвертирана да започва в 12:00 +0200 наше време.
Програмката може да бъде свалена от тук:
https://github.com/harrygg/xmltv-tools
Инсталация:
Това което ви трябва е:
wgmulti.exe - задължително го слагате в папката на WebGrab+Plus.exe
wgmulti.exe.config - слагате и него там, и редактирате при нужда от промяна на настройките.
* За разлика от WebGrab+ който е базиран на .NET 1, за да използвате wgmulti трябва да имате инсталиран .NET 4.5 (в повечето случаи вече го имате инсталиран). Ако сте на Линукс ви трябва mono-complete.
Програмата приема същите аргументи като WebGrab+. Стартирана без аргументи ще зареди конфига и инитата от %programdata%\ServerCare\WebGrab или от локалната директория при изпълнение на Линукс.
Иначе може да подадете път до папката с инитата и конфига:
./wgmulti.exe "път-до-директорията-с-конфига-и-ини-файловете"
Няколко важни настройки от wgmulti.exe.config:
maxAsyncProcesses - максимален брой на WebGrab процесите които могат да бъдат стартирани паралелно.
showWebGrabConsole - "true" или "false". По подразбиране програмата ще показва съкратена информация за грабването. Ако искате подробности може да разрешите показването на стартираните WebGrab процеси.
convertTimesToLocal - "true" или "false". по подразбиране ще преобразува времената в локално време.
* wgmulti е в бета стадий на разработка и естествено са възможни бъгове.

WTF е това wgmulti и за какво ни е?
"Скрапването" на сайтове отнема много време поради факта, че WebGrab+ работи последователно и извлича информация за каналите един по един, един след друг. Това е бавно особено ако извличате съдържание за стотици канали.
wgmulti ускорява процесa на "грабване", като стартира няколко (в зависимост от настройките) инстанции на WebGrab. За целта програмката обхожда главния конфигурационен файл на WebGrab и групира каналите според сайт на извличане (siteini).
След това създава локални конфигурационни файлове и стартира отделен WebGrab процес за всяка група канали. Процесите се изпълняват паралелно и независимo един от друг. След като грабването на всички групи канали завърши локалните ЕПГ-та се обединяват в едно голямо ЕПГ - същото като това, което бихте получили при грабване само с WebGrab. Разликата е че грабването ви е отнело много по-малко време и можете да излезете да пиете бира по-рано

Пример: Ако грабвате по 10 канала от 10 сайта (общо 100 канала), всеки канал отнема по 10 секунди.
Грабването с WebGrab ще ви отнеме 10*10*10 = 1000 секунди или около 16 минути.
С wgmulti грабването ще е паралелно за всеки сайт и времето ще отнеме 1 * 10 * 10 = 100 секунди или около 1 минута и 40 сек или 8 пъти по-бързо.
В допълнение (пак според настройка) времената на стартиране/завършване на предаванията се конвертират в локално време (защото иначе Коди показва грешни времена).
Пример: Ако дадена програма започва в 10:00 +0000 английско време, тя ще бъде конвертирана да започва в 12:00 +0200 наше време.
Програмката може да бъде свалена от тук:
https://github.com/harrygg/xmltv-tools
Инсталация:
Това което ви трябва е:
wgmulti.exe - задължително го слагате в папката на WebGrab+Plus.exe
wgmulti.exe.config - слагате и него там, и редактирате при нужда от промяна на настройките.
* За разлика от WebGrab+ който е базиран на .NET 1, за да използвате wgmulti трябва да имате инсталиран .NET 4.5 (в повечето случаи вече го имате инсталиран). Ако сте на Линукс ви трябва mono-complete.
Програмата приема същите аргументи като WebGrab+. Стартирана без аргументи ще зареди конфига и инитата от %programdata%\ServerCare\WebGrab или от локалната директория при изпълнение на Линукс.
Иначе може да подадете път до папката с инитата и конфига:
./wgmulti.exe "път-до-директорията-с-конфига-и-ини-файловете"
Няколко важни настройки от wgmulti.exe.config:
maxAsyncProcesses - максимален брой на WebGrab процесите които могат да бъдат стартирани паралелно.
showWebGrabConsole - "true" или "false". По подразбиране програмата ще показва съкратена информация за грабването. Ако искате подробности може да разрешите показването на стартираните WebGrab процеси.
convertTimesToLocal - "true" или "false". по подразбиране ще преобразува времената в локално време.
* wgmulti е в бета стадий на разработка и естествено са възможни бъгове.
