!!! ВАЖНО !!!

1) Във връзка с превенцията на зачестилите СПАМ теми във форума, паролите на всички потребители бяха автоматично инвалидизирани на 22 Май 2024 14:20 ч.. За да възстановите своята парола (и създадете нова), моля използвайте опцията за забравена парола тук.
2) Ако акаунта ви е "баннат", без да знаете защо, вероятно от ваше име са публикувани СПАМ съобщения.
Съжаляваме за причиненото неудобство. При проблеми с възстановяването на паролата или баннати акаунти, моля пишете на kodibg в гмаил.ком или във Фейсбук страницата на КодиБГ Форум тук

Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5
Помощ за Python Easy Html Parser - Elementum burst
#1
Здравейте,

опитвам се да добавя 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 програмист не ми е точно ясно какъв трябва да е правилния синтаксис и за съжаление никъде няма подробно обяснение. Ще съм благодарен яко някой може да помогне.
Отговори
#2
/Не ползвам Elementum и не знам какво има в ehp.py, но сайтове, които нямат API (на което да са базирани) обикновено се претърсват с регулярни изрази (regular expression)/

За торент файла търси таг <a href="........."> завършващ с .torrent в линка му: <a href="(.+?.torrent)">
Ако претърсваш за магнитен линк, съответно регулярният израз ще бъде <a href="(magnet:.+?)"> , където линка в тага започва с думичката magnet. Ако хванеш няколко резултата, а искаш само първият от тях, можеш да филтрираш резултатите в списъка с именасписъка[0] - това ще ти върне само първият елемент, именасписъка[1] вторият подред и т.н. Ако пък искаш последният, използвай именасписъка[:-1].
[Изображение: notrobosmall.jpg]
Отговори
#3
Здравей, мерси за отговора, но питах нещо по същество, а именно тъй като се опитвам да пиша дефиниция за вече съществуваща добавка, която използва конкретна библиотека за html parse, затова ми трябваше помощ за да разбера питон кода. Иначе ми е ясно от нулата как да напиша regexp Smile
Както и да е успях сам да се оправя и съм пуснал в github обновление за всички българи, които ползват Elementum, очаквайте скоро подръжка на всички БГ тракери Smile
Засега работят Замунда и Зелка, очаквам се и Арена ...

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

https://github.com/dbarev/script.element...rst/parser
Отговори
#4
@barev, благодаря (предполагам и други биха благодарили) за труда и времето, което отделяш. Въпроса ми е дали ще се поддържа това от Android TV? Ако се поддържа, моля, с няколко думи да обясниш как се инсталира.
Отговори
#5
Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.
Отговори
#6
(02-07-2018, 13:39)barev написа: Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.

Колега, свършил си страхотна работа, за което много благодаря!
Позволих си да изтегля от твоя акаунт в githib доработката ти и я поместих като обновяване с версия 0.0.18BG в репото ми, така че да могат хората да получат доработката ти, докато чакаме официалното одобрение (ако го дадат. Ако ли не, ще действаме с твое съдействие!).
Връзка с репо Mar33: 
http://martinstz.com/repo/repository.mar33-3.3.33.zip
Отговори
#7
(02-07-2018, 13:39)barev написа: Да, работи под андроид. Засега единственият начин е да си свалиш версията на elementum.burst от моя акаунт в github. В бъдеще се надявам ако авторът на елементум приеме промените да се включат в официалната версия.

Здравей!
Нещо спря да ми вади резултати за Замунда, а разбрах, че и при други потребители се е случило. По обяд, когато тествах, всичко вървеше нормално, но сега вади резултати само за Зелка. Дали би  могъл да погледнеш - защо?
Благодаря предварително!
Връзка с репо Mar33: 
http://martinstz.com/repo/repository.mar33-3.3.33.zip
Отговори
#8
Отвори сайта с браузъра и се опитай да свалиш някой торент ръчно, ще разбереш причината.
За в бъдеще намали броя на резултатите за отделен тракер, защото иначе скрипта сваля по много торенти наведнъж и включва спам-защитата ...
Отговори
#9
(03-07-2018, 02:14)barev написа: Отвори сайта с браузъра и се опитай да свалиш някой торент ръчно, ще разбереш причината.
За в бъдеще намали броя на резултатите за отделен тракер, защото иначе скрипта сваля по много торенти наведнъж и включва спам-защитата ...

Здравей!
И намаляването на резултатите не помага. И при Зелка и при Замунда се включват защитите.
Връзка с репо Mar33: 
http://martinstz.com/repo/repository.mar33-3.3.33.zip
Отговори
#10
Ти последва ли съвета ми и отвори ли някой торент файл през браузъра?
Отговори


Теми, които вероятно са свързани...
Тема: Автор Отговори: Прегледи: Последна публикация
Lightbulb Python 3 Majide 0 3,058 12-10-2019, 23:05
Последна публикация: Majide
  Помощ за плъгин Мисия моят дом ByJohnie 6 9,292 01-12-2017, 23:21
Последна публикация: ByJohnie
  Разархивиране на RAR архиви в python Majide 7 13,944 20-06-2017, 20:50
Последна публикация: Majide

Отваряне на: