Коди Фен Форум България
Помощ за Python Easy Html Parser - Elementum burst - Версия за принтиране

+- Коди Фен Форум България (https://kodibg.org/forum)
+-- Форум: Разработка (https://kodibg.org/forum/forum-7.html)
+--- Форум: Програмиране (https://kodibg.org/forum/forum-8.html)
+--- Тема: Помощ за Python Easy Html Parser - Elementum burst (/thread-710.html)

Страници: 1 2 3


Помощ за Python Easy Html Parser - Elementum burst - barev - 04-05-2018

Здравейте,

опитвам се да добавя Parser за популярните БГ торент тракери към Elementum. Стигнал съм до тук за zelka.org:


Код:
"zelka": {
   "anime_extra": "",
   "anime_keywords": "{title} {episode}",
   "anime_query": "QUERY&cat=25&incldead=0",
   "base_url": "http://zelka.org/browse.php?search=",
   "root_url": "http://zelka.org",
   "color": "FF076700",
   "general_extra": "",
   "general_keywords": "{title}",
   "general_query": "QUERY&cat=0&incldead=0",
   "language": null,
   "login_failed": "Login failed!",
   "login_object": "{'username': USERNAME, 'password': PASSWORD}",
   "login_path": "/takelogin.php",
   "movie_extra": "",
   "movie_keywords": "{title} {year}",
   "movie_query": "QUERY&cat=19&incldead=0",
   "name": "Zelka",
   "parser": {
       "infohash": "",
       "name": "item(tag='a', order=2)",
       "peers": "item(tag='td', order=-1)",
       "row": "find_once('table', ('class', 'test')).find_all('tr', start=2)",
       "seeds": "item(tag='td', order=-2)",
       "size": "item(tag='td', order=-4)",
       "torrent": "'http://zelka.org/%s' % item.take_with_root('src', 'http://img.zamunda.se/pic/download.gif')"
   },
   "private": true,
   "season_extra": "",
   "season_extra2": "",
   "season_keywords": "{title} Season_{season}",
   "season_keywords2": "{title} Season{season}",
   "season_query": "QUERY&cat=7&incldead=0",
   "separator": "+",
   "show_query": "QUERY&cat=7&incldead=0",
   "subpage": false,
   "tv_extra": "",
   "tv_extra2": "",
   "tv_keywords": "{title} s{season:2}e{episode:2}",
   "tv_keywords2": ""
},


за прегледност съм сложил един html файл със пробно търсене в зелка за 'batman'
https://pastebin.com/66dqfUEU
и коди лог
https://openload.co/f/8vPCuQu2uJI/kodi.log

Parser логването работи без проблем обаче трудното е да хванеш торент-линка от зелка, тъй като той често се намира в различни колони от таблицата, заради различно добавени детайли към всеки торент. Elementum.burst изполва ehp.py и аз намерих подходяща функция от там за да локализирам торент линка (той е винаги в тага с картинка за сваляне). Пoнеже не съм Python програмист не ми е точно ясно какъв трябва да е правилния синтаксис и за съжаление никъде няма подробно обяснение. Ще съм благодарен яко някой може да помогне.


RE: Помощ за Python Easy Html Parser - Elementum burst - Majide - 06-05-2018

/Не ползвам Elementum и не знам какво има в ehp.py, но сайтове, които нямат API (на което да са базирани) обикновено се претърсват с регулярни изрази (regular expression)/

За торент файла търси таг <a href="........."> завършващ с .torrent в линка му: <a href="(.+?.torrent)">
Ако претърсваш за магнитен линк, съответно регулярният израз ще бъде <a href="(magnet:.+?)"> , където линка в тага започва с думичката magnet. Ако хванеш няколко резултата, а искаш само първият от тях, можеш да филтрираш резултатите в списъка с именасписъка[0] - това ще ти върне само първият елемент, именасписъка[1] вторият подред и т.н. Ако пък искаш последният, използвай именасписъка[:-1].



RE: Помощ за Python Easy Html Parser - Elementum burst - barev - 30-06-2018

Здравей, мерси за отговора, но питах нещо по същество, а именно тъй като се опитвам да пиша дефиниция за вече съществуваща добавка, която използва конкретна библиотека за html parse, затова ми трябваше помощ за да разбера питон кода. Иначе ми е ясно от нулата как да напиша regexp Smile
Както и да е успях сам да се оправя и съм пуснал в github обновление за всички българи, които ползват Elementum, очаквайте скоро подръжка на всички БГ тракери Smile
Засега работят Замунда и Зелка, очаквам се и Арена ...

За който му е интересно - линк към библиотеката, която работи под Коди (питон 2.7) и страшно много услеснява прихващането на код от много страници с подобна структура наведнъж:

https://github.com/dbarev/script.elementum.burst/tree/master/burst/parser


RE: Помощ за Python Easy Html Parser - Elementum burst - sapiora - 02-07-2018

@barev, благодаря (предполагам и други биха благодарили) за труда и времето, което отделяш. Въпроса ми е дали ще се поддържа това от Android TV? Ако се поддържа, моля, с няколко думи да обясниш как се инсталира.


RE: Помощ за Python Easy Html Parser - Elementum burst - barev - 02-07-2018

Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.


RE: Помощ за Python Easy Html Parser - Elementum burst - martinstz - 02-07-2018

(02-07-2018, 13:39)barev написа: Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.

Колега, свършил си страхотна работа, за което много благодаря!
Позволих си да изтегля от твоя акаунт в githib доработката ти и я поместих като обновяване с версия 0.0.18BG в репото ми, така че да могат хората да получат доработката ти, докато чакаме официалното одобрение (ако го дадат. Ако ли не, ще действаме с твое съдействие!).


RE: Помощ за Python Easy Html Parser - Elementum burst - martinstz - 03-07-2018

(02-07-2018, 13:39)barev написа: Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.

Здравей!
Нещо спря да ми вади резултати за Замунда, а разбрах, че и при други потребители се е случило. По обяд, когато тествах, всичко вървеше нормално, но сега вади резултати само за Зелка. Дали би  могъл да погледнеш - защо?
Благодаря предварително!


RE: Помощ за Python Easy Html Parser - Elementum burst - barev - 03-07-2018

Отвори сайта с браузъра и се опитай да свалиш някой торент ръчно, ще разбереш причината.
За в бъдеще намали броя на резултатите за отделен тракер, защото иначе скрипта сваля по много торенти наведнъж и включва спам-защитата ...


RE: Помощ за Python Easy Html Parser - Elementum burst - martinstz - 03-07-2018

(03-07-2018, 02:14)barev написа: Отвори сайта с браузъра и се опитай да свалиш някой торент ръчно, ще разбереш причината.
За в бъдеще намали броя на резултатите за отделен тракер, защото иначе скрипта сваля по много торенти наведнъж и включва спам-защитата ...

Здравей!
И намаляването на резултатите не помага. И при Зелка и при Замунда се включват защитите.


RE: Помощ за Python Easy Html Parser - Elementum burst - barev - 03-07-2018

Ти последва ли съвета ми и отвори ли някой торент файл през браузъра?