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