HTML-Inhalt in VBA analysieren

9

Ich habe eine Frage zum HTML-Parsing. Ich habe eine Website mit einigen Produkten und möchte Text innerhalb einer Seite in meine aktuelle Tabelle einfangen. Diese Tabelle ist ziemlich groß, aber enthält ItemNbr in der dritten Spalte, ich erwarte den Text in der 14. Spalte und eine Zeile entspricht einem Produkt (Element).

Meine Idee ist, das "Material" auf der Webseite zu holen, die sich innerhalb des Tags Innertext after befindet. Die ID-Nummer ändert sich (manchmal) von einer Seite zur anderen.

Hier ist die Struktur der Website:

%Vor%

Ich würde gerne "600D Polyester" als Ergebnis bekommen.

Mein (nicht funktionierender) Code-Snippet ist wie folgt:

%Vor%

Danke für Ihre Hilfe!

    
Tdev 25.08.2014, 14:53
quelle

1 Antwort

7

Nur ein paar Dinge, die dich hoffentlich in die richtige Richtung bringen werden:

  • Bereinigen Sie ein bisschen: Entfernen Sie die Testschleife für die Fertigstellungseigenschaft. Der Wert, der von der Eigenschaft reefstate zurückgegeben wird, ändert sich in diesem Kontext nicht. Der Code wird nach dem Sendevorgang angehalten und nur dann fortgesetzt, wenn die Serverantwort empfangen wurde oder dies fehlgeschlagen ist. Die Eigenschaft readystate wird entsprechend festgelegt und der Code wird wieder ausgeführt. Sie sollten immer noch auf den Bereit-Zustand testen, aber die Schleife ist einfach unnötig

  • zielen Sie auf die richtigen HTML-Elemente: Sie durchsuchen die tr-Elemente - während die Logik, wie Sie diese Elemente in Ihrem Code verwenden, tatsächlich auf td-Elemente zeigt

  • stellen Sie sicher, dass die Eigenschaften tatsächlich für die Objekte verfügbar sind, auf denen Sie sie verwenden: Um Ihnen dabei zu helfen, versuchen Sie, alle Ihre Variablen als spezifische Objekte anstelle des generischen Objekts zu deklarieren. Dies aktiviert Intellisense. Wenn Sie Schwierigkeiten haben, den tatsächlichen Namen Ihres Objekts wie in der entsprechenden Bibliothek definiert zu finden, deklarieren Sie es als generisches Objekt, führen Sie Ihren Code aus und untersuchen Sie dann den Typ des Objekts - indem Sie typename (Ihr_Objekt) drucken. zum Beispiel zum Debug-Fenster. Das sollte dich auf den Weg bringen.

Ich habe auch einen Code darunter eingefügt, der helfen könnte. Wenn Sie das immer noch nicht zum Laufen bringen können und Sie Ihre URLs teilen können - tun Sie das.

%Vor%

EDIT: als Follow-up zu den weiteren Informationen, die Sie im Kommentar unten gegeben haben - und den zusätzlichen Kommentaren, die ich hinzugefügt habe

%Vor%

EDIT2: ein alternativer automatisierender IE

%Vor%     
IAmDranged 25.08.2014, 19:55
quelle