Új hozzászólás Aktív témák
-
Atomantiii
őstag
Sziasztok!
Találtam egy python-ban írt kis programot, ami weboldalról grabbelne le tv műsort xml fájlba, de valamilyen encoding problémája van. Úgy gondolom, hogy az ékezetes betűkkel van problémája. Hogyan tudnám kijavítani a hiányzó karaktereket? -
Atomantiii
őstag
válasz #79484416 #4147 üzenetére
Lehet korábbi pythonnal kellene próbálkozni? Vagy feldobni valamire egy ubuntut vagy valamilyen linuxot és azon jó eséllyel elindulna?
Pl ha a \xfb-t hozzáadom valamilyen karakterrel az 1250-es encodinghoz akkor már azon nem problémázik, hanem ha másikat talál, amit nem ismer akkor problémázik. Csak nem mindig írja ki, hogy melyiket nem ismeri, de úgy tűnik az ékezetes karakterek nem tetszenek neki.
[ Szerkesztve ]
-
Atomantiii
őstag
válasz #79484416 #4154 üzenetére
Igen telepítettem és helyileg próbálom futtatni ahogy írod ezzel a py_epg.xml-el, amiből veszi, hogy mely csatornákat akarom. Bár mondjuk ez a notepad++ szerint unicode kódolású és win 10-en próbálom futtatni parancssorból.
Bár most éppen nem írt hibát, de ha más csatornával próbálom akkor van amikor valószínűleg olyan karakterre akad, amivel nem tud mit kezdeni.
[ Szerkesztve ]
-
Atomantiii
őstag
válasz Atomantiii #4159 üzenetére
Most éppen mintha jó lenne, kipróbálom több csatornával is. Illetve mégsem ha mondjuk több napra állítom.
Tehát ennyi szerepel a py_epg.xml-ben a cool csatornára és 10 napra szeretném lehúzni. Ekkor ez szerepel a logban.
[ Szerkesztve ]
-
Atomantiii
őstag
válasz sztanozs #4162 üzenetére
Most éppen melóhelyen: Win 10 Enterprise 22H2, pythonra azt írja, hogy fent van a 3.11.2 és a 3.12.1 is. Most éppen cmd-be írom be a parancsot neki. Mondjuk otthoni gépemen még nem próbáltam, de majd este megpróbálom.
Ha a hiányolt \xc3-at hozzáadnám a cp1250-be, akkor valószínűleg nem problémázna rá, csak előbb-utóbb mindig talál olyat, ami nem tetszik neki.
[ Szerkesztve ]
-
-
Atomantiii
őstag
Xml fájlt hogyan tudnék xz formátumba tömöríteni? Találtam egy ilyen kódot, de akárhogy próbálom nálam mindig 0 byte lesz a mérete.
import lzma as xz
in_file = open('input.xml', 'rb')
input_data = in_file.read()
compressed_data = xz.compress(input_data)
out_file = open('input.xml.xz', 'wb')
in_file.close()
out_file.close()
-
Atomantiii
őstag
Újabb xml fájlos kérdésem lenne, hátha valakinek lenne ötlete hogyan induljak el.
Ilyen tartalom van az xml fájomban, hogy pl:
<programme start="20240226052500 +0100" channel="5.port.hu" stop="20240226060000 +0100" clumpidx="0/1">
<title>Fókusz</title>
<sub-title lang="hu">(magazinműsor, 2024)</sub-title>
<desc lang="hu">Hétköznaponként jelentkező riportmagazin a legfrissebb hírekkel, aktuális információkkal, eseményekkel, emberi sorsokkal, érdekes történetekkel és helyszínekkel a világ minden részéről az RTL Gold-on is. Az RTL Klub mai adása felvételről.</desc>
<date>2024</date>
<category lang="en">Magazines/Reports/Documentary</category>
<category lang="hu">Magazinok/Riportok/Dokumentumfilm</category>
<category lang="en">tvshow</category>
<url system="port.hu">https://port.hu/adatlap/film/tv/fokusz/event-tv-1416159575-5/movie-3806</url>
<previously-shown/>
<rating>
<value>12</value>
<icon src="https://port.hu/img/agelimit/raster/12_age_icon_black.png"/>
</rating>
</programme>Hogy tudnék egy olyan xml-t csinálni belőle, amivel törölném a felesleges sorokat belőle?
Pl ne legyenek benne ezek a sorok:
<url system="port.hu">https://port.hu/adatlap/film/tv/fokusz/event-tv-1416159575-5/movie-3806</url>
<value>12</value>
<icon src="https://port.hu/img/agelimit/raster/12_age_icon_black.png"/>
<category lang="en">Magazines/Reports/Documentary</category>Valakinek ötlete akár arra is, hogy neten hol keresgéljek?
-
Atomantiii
őstag
válasz Hege1234 #4217 üzenetére
Ez a teljes fájl. Ebből szeretnék kitakarítani felesleges dolgokat.
Pl az url-eket, ikonokat esetleg még másokat is, de ha már az egyik összejönne az is sokat jelentene méretben, mert több ezer van benne.
<url system="port.hu">http://port.hu/adatlap/szemely/peter-breitmayer/person-293341</url>
<icon src="https://port.hu/img/agelimit/raster/12_age_icon_black.png" />[ Szerkesztve ]
-
Atomantiii
őstag
válasz Hege1234 #4221 üzenetére
Abban tudnál még segíteni, hogy ezt hogy tudom átírni, hogy ne a tárhelyről, hanem a saját gépemről töltse be a forrás xml-t és oda is mentse le?
Próbáltam, de nem igazán akar összejönni, mindig hibát ír erre a sorra:
edited_tv_programs = ET.tostring(root, encoding='unicode')
Traceback (most recent call last):
File "d:\EPG\xmlremove.py", line 24, in <module>
edited_tv_programs = ET.tostring(root, encoding='unicode')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 1083, in tostring
ElementTree(element).write(stream, encoding,
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 728, in write
serialize(write, self._root, qnames, namespaces,
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 851, in _serialize_xml
tag = elem.tag
^^^^^^^^
AttributeError: 'ElementTree' object has no attribute 'tag'[ Szerkesztve ]
-
Atomantiii
őstag
-
Atomantiii
őstag
Ez így nagyon szuper, de esetleg lehetne neki mondani valahogy egy olyat, hogy törölje még ezt ki az xml-ből? " clumpidx="0/1" és helyette csak egy ilyet rakjon be: "
Notepad++-ban egy sima keresés és cserével megoldható, de jó lett volna valahogy automatizálni.
-
Atomantiii
őstag
válasz Hege1234 #4226 üzenetére
Közben találtam még egy olyat, hogy egyes sorokban van feleslegben egy ilyen a <desc lang="hu"> után, hogy zárójel nulla pont zárójel szóköz, ami felesleges. Ezt próbáltam kitörölni, de sehogy sem sikerül.
<desc lang="hu">(0.) Get ready as we bring you all of the greatest hits from singing sensation Ariana Grande!</desc>
edited_tv_programs = re.sub(r'<desc lang="hu">(0.) ', r'<desc lang="hu">', edited_tv_programs)
Akárhogy csináltam mindig csak a kezdő zárójel tűnt el de a 0 és a többi maradt.
[ Szerkesztve ]
-
Atomantiii
őstag
válasz Hege1234 #4229 üzenetére
Köszi, jó lett.
edited_tv_programs = re.sub(r'<desc lang="hu">(\(.*\.\) )', r'<desc lang="hu">', edited_tv_programs)
Elvileg elég lenne a desc lang hu-s rész nélkül is, de így is jó. Már itt kínlódtam vele egy jó ideje, sehol sem találtam meg, hogy hivatkozzak a zárójelre, a 0-ra és a .-ra egyszerre.
Így az eredeti 85 MB-os fájlból lett 33 MB.
[ Szerkesztve ]
-
Atomantiii
őstag
válasz sztanozs #4231 üzenetére
Működik Hege javaslata is, persze biztos meg lehet csinálni máshogy is. Itt a forrás fájl.
import xml.etree.ElementTree as ET
import re
xml_content = ET.parse('forras.xml')
root = xml_content.getroot()
not_needed = ["credits", "category", "country", "date", "episode-num", "icon", "length", "previously-shown", "rating", "star-rating", "url"]
for programme in root.findall(".//programme"):
for element_name in not_needed:
elements = programme.findall(f".//{element_name}")
for element in elements:
if element in programme:
programme.remove(element)
edited_tv_programs = ET.tostring(root, encoding='unicode')
# kiszedi a clumpidx="0/1"-et
edited_tv_programs = re.sub(r' clumpidx=.*\"', r'', edited_tv_programs)
# kiszedi a (0.)-át
edited_tv_programs = re.sub(r'<desc lang="hu">(\(.*\.\) )', r'<desc lang="hu">', edited_tv_programs)
# kiszedi a ...-ot
edited_tv_programs = re.sub(r'<desc lang="hu">(\.\.\. )', r'<desc lang="hu">', edited_tv_programs)
with open('edited.xml', 'w', encoding='utf-8') as file:
file.write(edited_tv_programs) -
Atomantiii
őstag
Tudna valaki segíteni (akár privát üzenetben is) egy letöltő srcipt készítésében, ahol van egy ilyen szerkezetű fájl, amiben a letöltendő oldalak vannak meghatározva melyik oldalnak mi a pontos elérése. A pdf-eket szeretném, hogy letöltse, már ha lehet olyat.
{
"editionGUID": "602de21a-dd42-4413-bd98-dc89232280fe",
"pagesDomain": "https://valami.com",
"pageGroups": [
{
"pages": [
{
"pdf": "https://valami.com/page1.pdf",
"pageNum": 1,
"type": "page"
}
]
},
{
"pages": [
{
"pdf": "https://valami.com//page2.pdf",
"pageNum": 2,
"type": "page"
}
]
},
{
"pages": [
{
"pdf": "https://valami.com/page3.pdf",
"pageNum": 3,
"type": "page"
stb...
} ] } ] }
-
Atomantiii
őstag
válasz Atomantiii #4286 üzenetére
Bár lehet egyszerűbb kimásolnom a linkeket és megetetni egy letöltő progival.
-
Atomantiii
őstag
válasz Atomantiii #4287 üzenetére
Mégsem teljesen jó ötlet a letöltésvezérlő, mert minden fájlnak ugyanaz a neve csak a más link. Vagyis letöltés közben át is kellene nevezni mondjuk sorszám alapján.
-
Atomantiii
őstag
válasz Atomantiii #4288 üzenetére
Közben megvan a megoldás.
Új hozzászólás Aktív témák
- Android alkalmazások - szoftver kibeszélő topik
- Linux kezdőknek
- The First Descendant (PC, PS4, PS5, XO, XSX)
- Háztartási gépek
- Kerékpárosok, bringások ide!
- DIGI kábel TV
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Milyen légkondit a lakásba?
- Megérkezett a HMD Skyline, a márka első felsőbb kategóriás készüléke
- Autós topik
- További aktív témák...
- EVGA RTX 3080 10GB GDDR6X XC3 ULTRA GAMING Eladó! 149.000.-
- ZBook Fury 15 G7 15.6" FHD IPS i9-10885H RTX 4000 32GB 512GB NVMe ujjlolv IR kam gar
- GIGABYTE RTX 3070 8GB GDDR6 VISION OC Eladó! 118.000.-
- INNO3D RTX 3070 8GB GDDR6 ICHILL X3 Eladó! 106.000.-
- INNO3D RTX 3070 8GB GDDR6 ICHILL X4 Eladó! 108.000.-
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen