Seite 1 von 1
String innerhalb Tags zerlegen, Teilstring extrahieren
Verfasst: Samstag 22. Oktober 2022, 18:08
von ReiMae
Hallo,
ich möchte mit Beautiful Soup innerhalb einer Zeichenkette einen Teilstring "herausholen".
Zwischen %2F und %3F soll "B08CL2GHL5" ausgeschnitten werden, es ist eine ASIN.
Als Anfänger fehlt mir ein Ansatz, wie ich das bewerkstelligen könnten. Hätte jemand eine klitzekleine Idee für mich?
Re: String innerhalb Tags zerlegen, Teilstring extrahieren
Verfasst: Samstag 22. Oktober 2022, 19:14
von darktrym
Slicing aber ob vorher kodieren willst bleibt dir überlassen.
Re: String innerhalb Tags zerlegen, Teilstring extrahieren
Verfasst: Samstag 22. Oktober 2022, 19:21
von Sirius3
Da fehlt einiges an Kontext. Als erstes mußt Du das richtige <a>-Tag finden, dann die URL im href-Attribut parsen und mit entsprechenden Mitteln auseinandernehmen, um dann den Teil, der diese ASIN enthält wiederum zu parsen.
Re: String innerhalb Tags zerlegen, Teilstring extrahieren
Verfasst: Sonntag 23. Oktober 2022, 10:21
von ReiMae
Sirius3 hat geschrieben: Samstag 22. Oktober 2022, 19:21
Da fehlt einiges an Kontext. Als erstes mußt Du das richtige <a>-Tag finden, dann die URL im href-Attribut parsen und mit entsprechenden Mitteln auseinandernehmen, um dann den Teil, der diese ASIN enthält wiederum zu parsen.
Der vollständige Tag:
Code: Alles auswählen
<img class="mid gh_flag offer__merchant-flag"
src="//gzhls.at/b/flags/de.svg"
width="16"
height="16"
alt="[DE]"><a
rel="nofollow noopener"
target="_blank"
onclick="
window._gh.track('Offers', 'offer_click_19', '/OUTSHOP/teleropa | amazon.de');
if(window._paq) {
window._paq.push(['addEcommerceItem',
'2374501',
'Xiaomi Pro 2 Elektro\u002dRoller 20km/h',
'Sport \u0026 Freizeit/Rollsport/Elektro\u002dRollsport',
699.99,
1
]);
window._paq.push(['trackEcommerceOrder',
'2374501teleropa | amazon.de' + new Date().getTime(),
699.99,
]);
}
"
href="/redir.cgi?h=a11bpzirz15gb0-am-de&loc=https%3A%2F%2Fwww.amazon.de%2Fdp%2F[color=#FF0000]B08CL2GHL5[/color]%3FlinkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26smid%3DA11BPZIRZ15GB0%26creativeASIN%3D[color=#FF0000]B08CL2GHL5[/color]%26tag%3Dgeizhals10-21&ghaID=2374501&key=9519bd2695d1d17548a9f2f68d3931c4"
class="gh_offerlist__offerurl ntd merchant"
data-merchant-name="teleropa | amazon.de">
Dieselbe ASIN kommt mehrmals vor, ist nicht an das eine DIV gebunden.
Ich müsste einen Teilstring innerhalb des TAG zwischen
Herausholen.
Gibt es in BS4 eine Funktion dafür? Oder geht es nur über RegEx?
Grüße, Reiner
Wenn es bei Python keine einfache Funktion zum Zerlegen von Strings gibt, würde ich es per RegEx lösen
Re: String innerhalb Tags zerlegen, Teilstring extrahieren
Verfasst: Sonntag 23. Oktober 2022, 10:32
von Sirius3
Eine einfache Funktion gibt es nicht, und mit Regex popelst Du dir irgendeinen String raus, der nicht unbedingt dem gewünschten entspricht.
Die Schritte hatten ich dir ja schon erklärt.
1. Href-Attribut extrahieren.
2. Url zum ersten Mal parsen und entsprechenden Parameter extrahieren.
3. Diese neue URL zum zweiten Mal parsen.