Wie prüft man flexibel auf diverse/unterschiedliche Werte? (Oder alternativer Ansatz)
Verfasst: Sonntag 29. Dezember 2019, 05:26
Hallo,
ich versuche via Scrapy Daten von diversen Websites zu scrapen.
Die Optionen die ich habe sind entweder die Daten per XPath oder CSS zu extrahieren (oder den gesamten HTML code zu analysieren und die Daten mit .. ? zu extrahieren).
Von den Kategorie Seiten in Webshops hätte ich gern:
- Produktname
- Link
- URL zum Bild
- Preis
Für eine oder wenige Domains, kein Problem - wenn es für viele Domains (sagen wir 80 - 90% aller häufig vorkommenden Shops + Templates) funktionieren soll, deutlich schwerer.
Eine Option die mir als erstes einfällt ist über eine große Menge:
if elif
Strukturen alle möglichen Optionen abzufangen / zu testen.
Sicher mit Aufwand machbar und recht unelegant.
Wenn man sich das HTML von Kategorieseiten anschaut, dann sieht das ja meist vergleichbar aus:
Meist ein vielfaches von drei, vier oder fünf an li, div oder a tags, jeweils mit URL, Preis, kurzem Text und Bild / Bild URL.
Man könnte also erst Tags mit Statistiken versehen pro Seite und dann hätte man Wahrscheinlichkeiten, bei welchen tags es sich um den Produkt HTML "Element Ast" handelt.
Sicher könnte man auch mit einem Headless Browser screenshots erstellen und diese mit dem HTML vergleichen und dann über Bilderkennung (z. B. den Text unter den Produktbildern als Anhaltspunkt) dort etwas extrahieren.
Meine Fragen:
Fällt euch noch ein Weg ein den ich übersehen habe?
Welcher Weg erscheint für euch am einfachsten/praktischsten zu implementieren?
ich versuche via Scrapy Daten von diversen Websites zu scrapen.
Die Optionen die ich habe sind entweder die Daten per XPath oder CSS zu extrahieren (oder den gesamten HTML code zu analysieren und die Daten mit .. ? zu extrahieren).
Von den Kategorie Seiten in Webshops hätte ich gern:
- Produktname
- Link
- URL zum Bild
- Preis
Für eine oder wenige Domains, kein Problem - wenn es für viele Domains (sagen wir 80 - 90% aller häufig vorkommenden Shops + Templates) funktionieren soll, deutlich schwerer.
Eine Option die mir als erstes einfällt ist über eine große Menge:
if elif
Strukturen alle möglichen Optionen abzufangen / zu testen.
Sicher mit Aufwand machbar und recht unelegant.
Wenn man sich das HTML von Kategorieseiten anschaut, dann sieht das ja meist vergleichbar aus:
Meist ein vielfaches von drei, vier oder fünf an li, div oder a tags, jeweils mit URL, Preis, kurzem Text und Bild / Bild URL.
Man könnte also erst Tags mit Statistiken versehen pro Seite und dann hätte man Wahrscheinlichkeiten, bei welchen tags es sich um den Produkt HTML "Element Ast" handelt.
Sicher könnte man auch mit einem Headless Browser screenshots erstellen und diese mit dem HTML vergleichen und dann über Bilderkennung (z. B. den Text unter den Produktbildern als Anhaltspunkt) dort etwas extrahieren.
Meine Fragen:
Fällt euch noch ein Weg ein den ich übersehen habe?
Welcher Weg erscheint für euch am einfachsten/praktischsten zu implementieren?