Sziasztok éjszakai kódolók. Remélem jól vagytok és jól vagytok :)
Akkor kezdődött, amikor interjút adtam, és a testület küldött egy kódolási teszt linket. Kipróbáltam ezt a kérdést, de nem találtam kiindulópontot, mivel nem kellett „csak Python” nyelvet használnom, és sajnos nem tudtam időben megtenni.
Egy idő után megpróbáltam súgót keresni a python kódolási koncepciójához, de nem találtam kódot a pythonhoz.
Így végül úgy döntöttem, hogy python nyelven dolgozom ki ezt a kódolási kérdést, hogy a jelölt ne érezze magát rosszul, miután még a Google-on sem keresett semmilyen szükséges eredményt.
Mi az a HTML elemzés
Ez egyszerűen egy folyamat, amelyet arra használnak, hogy a forráskód segítségével megszerezzék a weboldal szükséges tartalmát.
Miért van rá szükségünk?
Az Universe ADATOKon fut, és minden forrásból származó adatokra van szükségünk a jobb termék előállításához. Ezért szükségünk lenne a html elemzőre.
Késlekedés nélkül piszkosítsuk be a kezünket a billentyűzeten!!!
A kódolás kérdése a következő volt:
Van egy HTML szövegünk és megkapjuk az adott címke attribútumainak értékeit.
Vegyünk egy példát a pontosítás kedvéért:
Ha szeretném a nameattribute of tag2tag értékét, hogyan juthatok el oda közvetlenül, a kódnak ezt meg kell tennie.
Ezért itt:
az első sorban az o/p HelloWorld-et kell adni
Ugyanígy a második sorban az o/p Name1-t kell megadnia 2 tagként a tag1-en belül
DE
minden rossz kombinációnak vissza kell adnia a „Nem található !!!” eredményt
mint:
címke1~név
Tehát ezt megtehetjük pythonban, a naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaansaansaetköőid'megközelítés használatával!!!
Lépések:
1. Vegyünk egy HTML karakterláncot:
data = '<tag1 value = "HelloWorld"><tag2 name = "Name1"></tag2></tag1></tag>'
Bármilyen html megfelelő szöveg lehet, csak a fenti példához kódoltam.
2. Tegye használhatóvá ezt a karakterláncot az összes „‹›” eltávolításával, és készítsen egy listát az egyes címkeadatokból ezzel az egyszerű két sorral
data = data.split("><") data = [c.replace("<", "").replace(">","") for c in data]
3. NAGYON FONTOS – a verem adatstruktúra fogalmát fogjuk használni
először az adatokból kapjuk meg a címkét, majd amint megkapjuk a címkét, hozzáadjuk egy listához. Az első címkelekérés után egy térképet készítünk, amely a kulcsot a címkeadatokban lévő címkékként tárolja, és az érték lesz az attribútum értéke.
Hogyan szerezhet be attribútumokat?
for _ in data: tagContent = _.split(" ") tag = tagContent[0] # if it gets closure of a tag, it start removing from last if tag.startswith("/"): tags.pop() else: tags.append(tag) attrVal = {} # it would be used to store attributes of the current tag if len(tagContent) > 0: for _ in range((len(tagContent)-1)//3): attrVal[tagContent[1 + (3 * _)]] = tagContent[3 + (3*_)].replace("\"", "")
Ez a folyamat addig folytatódik, amíg egy záró címke meg nem érkezik, a címkék eltávolítását a végéről kell kezdeni, és újrakezdeni az előző folyamatot.
A kód sokat segít a jobb megértéshez
Ha nem kódolunk, akkor nem értjük, szóval goooo, és ellenőrizze, hogy meg tudja-e csinálni vagy sem?
Addig is jó éjszakát és jó kódolást éjjeli baglyok :)
A teljes forgatókönyvért: GitLink