Wie "extrahiere" ich schnell bestimmte Informationen aus Webseiten (Quellcode) und formatiere sie in XML?

1889
MrT

Der Kernpunkt: Das kleine Unternehmen, für das ich arbeite, wirbt mit seinen Produkten über Google Merchant. Wir laden die Produkte gemäß den Anforderungen von Google in eine XML-Datei hoch.

Das Problem: Tausende von Produkten manuell in XML zu formatieren, ist eine mühsame Aufgabe. Was ich möchte, ist eine schnelle Methode, um die relevanten Informationen auf jeder Produktseite in formatiertes XML umzuwandeln. Ich suche einen (halb-) automatischen Weg, um von bigHTMLSourceCode -> formatiert XML zu gehen.

Wenn ich nicht klar bin, stellen Sie sich vor, Sie möchten eine Amazon-Produktseite in XML formatieren. Sie möchten, dass Kosten, Beschreibung, Gewicht usw. in einer bestimmten Weise mit den entsprechenden XML-Tags usw. angeordnet werden, und dies ist für Tausende von Produkten nicht vertretbar.

Ich habe ausgiebig gegoogelt, hatte aber kein Glück, Programme zu finden, die dabei helfen können.

0
Ihre Quellwebsite ist also nur eine Sammlung manuell gepflegter HTML-Dateien? Der Hochstapler vor 12 Jahren 0
@OliverSalzburg Ein Großteil der Produktinformationen wird manuell gepflegt. Jede Seite enthält auch automatisch generierte Informationen, aber ich habe keinen Zugriff auf das Back-End der Dinge und wurde gebeten, eine Lösung mit den verfügbaren Informationen zu finden (und alle benötigten Informationen sind definitiv in der Rohquelle enthalten.) Code). MrT vor 12 Jahren 1

2 Antworten auf die Frage

0
RedGrittyBrick

Wenn Ihr HTML-Code XHTML ist, können Sie wahrscheinlich XSLT verwenden ?

Es gibt Tools zum Konvertieren von HTML in XML

Die Hauptalternative wäre die Verwendung einer Skriptsprache, die über Module zum HTML-Parsing oder Web-Scraping verfügt, und Module zum Schreiben von XML . Das bedeutet aber das Schreiben von Programmen / Skripten.

Vielen Dank! Ich werde mir diese Tools ansehen. Ich hoffe, das Schreiben von Programmen und Skripten zu vermeiden (ich bin ein Baaad-Programmierer), aber ich werde darauf eingehen, wenn ich muss. Die HTML-> XML-Konverter, die ich gefunden habe, haben sich nicht als geeignet erwiesen. MrT vor 12 Jahren 0
0
Daniel Andersson

Mit dem Python-Modul " Beautiful Soup" finden Sie viele Erfolgsgeschichten, und es wird allgemein für das Web-Scraping empfohlen. Dies würde ich unter kategorisieren. Wenn Sie Lösungen mit regulären Ausdrücken vorschlagen, werden Sie von den Benutzern von SU und SO schnell verwarnt :-)). Das hätte ich benutzt, um Ihr Beispiel amazon.com zu kratzen, und ich habe es in anderen Zusammenhängen verwendet.

Wenn Sie einige grundlegende Python-Erfahrungen haben, können Sie wahrscheinlich Beispiele betrachten und schnell eine funktionierende Lösung finden. Wenn Sie eine gewöhnliche Programmiergewohnheit haben, können Sie das wahrscheinlich mit einem Bruchteil von mehr Zeit tun.

(Ich mag es nicht, wenn die Leute sagen "Oh, es ist wirklich einfach!", Wenn es in der Praxis für jemanden, der nicht an das Tool gewöhnt ist, sehr lange dauert, aber ich glaube, dass Beautiful Soup und Python eine einfache und robuste Lösung sind Finden Sie eine Lösung, die besser zu Ihnen passt: toll :-)).


Nachtrag: Welche Art von System haben Sie, wo alle Seiten statisches HTML sind? Sind die Daten nicht irgendwo in einer Datenbank gespeichert? Ich denke nicht wegen deiner Frage. Dies kann ein Problem darstellen (für jede automatische Lösung), wenn der HTML-Code auf den Produktseiten nicht konsistent ist.

Vielen Dank! Ich hatte gehofft, dass dieses Problem ("Web Scraping" - neuer Begriff!) Üblich war, dass es Programme für diese Aufgabe geben würde, aber Module könnten gut genug sein. Ich habe keine Erfahrung mit Python, aber ich habe Kurse in C ++ und Java besucht. Die Produktinformationen * sind in einer Datenbank gespeichert, aber ich habe keinen Zugriff darauf. Mein Chef hat mich gebeten, eine Lösung für das zu finden, was ich habe, da alle benötigten Informationen in der Quelle enthalten sind. MrT vor 12 Jahren 0