|
| 1 | +/* |
| 2 | +
|
| 3 | +Script to extract categories from the Kleinanzeigen page: |
| 4 | +
|
| 5 | +const extractCategories = (data) => { |
| 6 | + return data.map(x => [ |
| 7 | + [x[1].categoryName[1], x[1].id[1]], |
| 8 | + ...extractCategories(x[1].children[1]).flat() |
| 9 | + ]) |
| 10 | +} |
| 11 | +
|
| 12 | +document.querySelectorAll('astro-island').forEach(x => { |
| 13 | + const propsString = x.getAttribute('props') |
| 14 | + const props = JSON.parse(propsString) |
| 15 | + if(props.categories) { |
| 16 | + console.log(props.categories[1]) |
| 17 | + const data = extractCategories(props.categories[1]) |
| 18 | + console.log(JSON.stringify(Object.fromEntries(data.flat()), null, 2)) |
| 19 | + } |
| 20 | +}) |
| 21 | +*/ |
| 22 | +const category2Id = { |
| 23 | + 'Alle Kategorien': 0, |
| 24 | + 'Auto, Rad & Boot': 289, |
| 25 | + Autos: 216, |
| 26 | + 'Autoteile & Reifen': 223, |
| 27 | + 'Boote & Bootszubehör': 211, |
| 28 | + 'Fahrräder & Zubehör': 217, |
| 29 | + 'Motorräder & Motorroller': 305, |
| 30 | + 'Motorradteile & Zubehör': 306, |
| 31 | + 'Nutzfahrzeuge & Anhänger': 276, |
| 32 | + 'Reparaturen & Dienstleistungen': 280, |
| 33 | + 'Wohnwagen & -mobile': 220, |
| 34 | + 'Weiteres Auto, Rad & Boot': 241, |
| 35 | + Dienstleistungen: 297, |
| 36 | + Altenpflege: 236, |
| 37 | + 'Babysitter/-in & Kinderbetreuung': 237, |
| 38 | + Elektronik: 161, |
| 39 | + 'Haus & Garten': 80, |
| 40 | + 'Künstler/-in & Musiker/-in': 191, |
| 41 | + 'Reise & Event': 294, |
| 42 | + 'Tierbetreuung & Training': 133, |
| 43 | + 'Umzug & Transport': 238, |
| 44 | + 'Weitere Dienstleistungen': 298, |
| 45 | + 'Eintrittskarten & Tickets': 231, |
| 46 | + 'Bahn & ÖPNV': 286, |
| 47 | + 'Comedy & Kabarett': 254, |
| 48 | + Gutscheine: 287, |
| 49 | + Kinder: 252, |
| 50 | + Konzerte: 255, |
| 51 | + Sport: 257, |
| 52 | + 'Theater & Musical': 251, |
| 53 | + 'Weitere Eintrittskarten & Tickets': 256, |
| 54 | + 'Audio & Hifi': 172, |
| 55 | + 'Dienstleistungen Elektronik': 226, |
| 56 | + Foto: 245, |
| 57 | + 'Handy & Telefon': 173, |
| 58 | + Haushaltsgeräte: 176, |
| 59 | + Konsolen: 279, |
| 60 | + Notebooks: 278, |
| 61 | + PCs: 228, |
| 62 | + 'PC-Zubehör & Software': 225, |
| 63 | + 'Tablets & Reader': 285, |
| 64 | + 'TV & Video': 175, |
| 65 | + Videospiele: 227, |
| 66 | + Wearables: 405, |
| 67 | + 'Wearables Zubehör': 406, |
| 68 | + 'Weitere Elektronik': 168, |
| 69 | + 'Familie, Kind & Baby': 17, |
| 70 | + 'Baby- & Kinderkleidung': 22, |
| 71 | + 'Baby- & Kinderschuhe': 19, |
| 72 | + 'Baby-Ausstattung': 258, |
| 73 | + 'Babyschalen & Kindersitze': 21, |
| 74 | + 'Kinderwagen & Buggys': 25, |
| 75 | + Kinderzimmermöbel: 20, |
| 76 | + Spielzeug: 23, |
| 77 | + 'Weiteres Familie, Kind & Baby': 18, |
| 78 | + 'Freizeit, Hobby & Nachbarschaft': 185, |
| 79 | + 'Esoterik & Spirituelles': 265, |
| 80 | + 'Essen & Trinken': 248, |
| 81 | + Freizeitaktivitäten: 187, |
| 82 | + 'Handarbeit, Basteln & Kunsthandwerk': 282, |
| 83 | + 'Kunst & Antiquitäten': 240, |
| 84 | + Modellbau: 249, |
| 85 | + 'Reise & Eventservices': 233, |
| 86 | + Sammeln: 234, |
| 87 | + 'Sport & Camping': 230, |
| 88 | + Trödel: 250, |
| 89 | + 'Verloren & Gefunden': 189, |
| 90 | + 'Weiteres Freizeit, Hobby & Nachbarschaft': 242, |
| 91 | + Badezimmer: 91, |
| 92 | + Büro: 93, |
| 93 | + Dekoration: 246, |
| 94 | + 'Dienstleistungen Haus & Garten': 239, |
| 95 | + 'Gartenzubehör & Pflanzen': 89, |
| 96 | + Heimtextilien: 90, |
| 97 | + Heimwerken: 84, |
| 98 | + 'Küche & Esszimmer': 86, |
| 99 | + 'Lampen & Licht': 82, |
| 100 | + Schlafzimmer: 81, |
| 101 | + Wohnzimmer: 88, |
| 102 | + 'Weiteres Haus & Garten': 87, |
| 103 | + Haustiere: 130, |
| 104 | + Fische: 138, |
| 105 | + Hunde: 134, |
| 106 | + Katzen: 136, |
| 107 | + Kleintiere: 132, |
| 108 | + Nutztiere: 135, |
| 109 | + Pferde: 139, |
| 110 | + 'Vermisste Tiere': 283, |
| 111 | + Vögel: 243, |
| 112 | + Zubehör: 313, |
| 113 | + Immobilien: 195, |
| 114 | + 'Auf Zeit & WG': 199, |
| 115 | + Container: 402, |
| 116 | + Eigentumswohnungen: 196, |
| 117 | + 'Ferien- & Auslandsimmobilien': 275, |
| 118 | + 'Garagen & Stellplätze': 197, |
| 119 | + Gewerbeimmobilien: 277, |
| 120 | + 'Grundstücke & Gärten': 207, |
| 121 | + 'Häuser zum Kauf': 208, |
| 122 | + 'Häuser zur Miete': 205, |
| 123 | + Mietwohnungen: 203, |
| 124 | + Neubauprojekte: 403, |
| 125 | + 'Weitere Immobilien': 198, |
| 126 | + Jobs: 102, |
| 127 | + Ausbildung: 118, |
| 128 | + 'Bau, Handwerk & Produktion': 111, |
| 129 | + 'Büroarbeit & Verwaltung': 114, |
| 130 | + 'Gastronomie & Tourismus': 110, |
| 131 | + 'Kundenservice & Call Center': 105, |
| 132 | + 'Mini- & Nebenjobs': 107, |
| 133 | + Praktika: 125, |
| 134 | + 'Sozialer Sektor & Pflege': 123, |
| 135 | + 'Transport, Logistik & Verkehr': 247, |
| 136 | + 'Vertrieb, Einkauf & Verkauf': 117, |
| 137 | + 'Weitere Jobs': 109, |
| 138 | + 'Mode & Beauty': 153, |
| 139 | + 'Beauty & Gesundheit': 269, |
| 140 | + Damenbekleidung: 154, |
| 141 | + Damenschuhe: 159, |
| 142 | + Herrenbekleidung: 160, |
| 143 | + Herrenschuhe: 158, |
| 144 | + 'Taschen & Accessoires': 156, |
| 145 | + 'Uhren & Schmuck': 157, |
| 146 | + 'Weiteres Mode & Beauty': 155, |
| 147 | + 'Musik, Filme & Bücher': 73, |
| 148 | + 'Bücher & Zeitschriften': 76, |
| 149 | + 'Büro & Schreibwaren': 281, |
| 150 | + Comics: 284, |
| 151 | + 'Fachbücher, Schule & Studium': 77, |
| 152 | + 'Film & DVD': 79, |
| 153 | + 'Musik & CDs': 78, |
| 154 | + Musikinstrumente: 74, |
| 155 | + 'Weitere Musik, Filme & Bücher': 75, |
| 156 | + Nachbarschaftshilfe: 401, |
| 157 | + 'Unterricht & Kurse': 235, |
| 158 | + Computerkurse: 260, |
| 159 | + 'Kochen & Backen': 263, |
| 160 | + 'Kunst & Gestaltung': 264, |
| 161 | + 'Musik & Gesang': 262, |
| 162 | + Nachhilfe: 268, |
| 163 | + Sportkurse: 261, |
| 164 | + Sprachkurse: 271, |
| 165 | + Tanzkurse: 267, |
| 166 | + Weiterbildung: 266, |
| 167 | + 'Weitere Unterricht & Kurse ': 270, |
| 168 | + 'Verschenken & Tauschen': 272, |
| 169 | + Tauschen: 273, |
| 170 | + Verleihen: 274, |
| 171 | + Verschenken: 192, |
| 172 | +}; |
| 173 | + |
| 174 | +/** |
| 175 | + * Resolve the Category string to categoryId |
| 176 | + * @param category: string category string as entered into the Kleinanzeigen search |
| 177 | + * @returns |
| 178 | + */ |
| 179 | +export const resolveCategory = (category: string): number => category2Id[category] || 0; |
0 commit comments