Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1676to1680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ebay erste Suchseite auslesen - @Hirtenanna

Ebay erste Suchseite auslesen - @Hirtenanna
28.02.2019 15:53:58
Zwenn
Hallo Hirtenanna,
ich hoffe Du schaust hier noch rein. Jetzt hat es ja doch etwas gedauert, bis ich meine Zusage umgesetzt habe.
Dafür bekommst Du aber eine Out-of-the-box-Lösung, weil ich die Gelegenheit, die Suchseite genau unter die Lupe zu nehmen einerseits für eigene Zwecke genutzt habe und weil ich andererseits dabei Fallstricke umgehen musste, für die Du vermutlich noch viel hättest nachfragen müssen.
Zusätzlich wollte ich dieses Projekt auch nutzen, um mal alles neu und zusammenhängend aufzuschreiben, was ich über Web Scraping mit VBA inzwischen weiß. Das habe ich nach 14 Seiten abgebrochen und werde das als eigenes Projekt in anderer Form weiterverfolgen. Mir war nicht klar, was ich dazu alles weiß und welche Ausflüge ich machen muss, um Ausführungen auch meinen Ansprüchen genügend verstehbar im Zusammenhang mit VBA ansich zu formulieren.
Für den Gesamt-Zusammenhang, Deine beiden Anfragen vom 27.01.2019 und 05.02.2019
https://www.herber.de/cgi-bin/callthread.pl?index=1671296
https://www.herber.de/cgi-bin/callthread.pl?index=1673468
Ein paar Erklärungen zur Lösung
Wie man auf bestimmte Inhalte einer Seite zugreift, habe ich wie gesagt jetzt nicht mit aufgenommen und schreibe dazu jetzt auch nichts weiter. Im Quellcode sind alle HTML Ausschnitte als Kommentare hinterlegt. In den einzelnen Funktionen kannst Du nachvollziehen, wie ich drangekommen bin und sie weiter verarbeitet habe.
Statt mich also zum Programmieren auszulassen, möchte ich einige Worte zu den Tabellen EANs und Ausgelesen schreiben. Deine beiden Tabellen sind auch noch enthalten und auch Dein VBA Modul habe ich drin gelassen. So hast Du den direkten Vergleich zwischen einer quick and dirty Lösung, mit der man sehr schnell an Daten kommen kann, wenn es nur ein- zweimal benötigt wird und einer Lösung, die ausgearbeitet alles so fein filetiert holt, dass Du direkt mit den Daten arbeiten kannst. Projekte in dieser Form arbeite ich eigentlich nur für interne Zwecke aus. Aber da sich unser Interesse hier überschneidet und Deine Anfrage Ausgangspunkt für meine Überlegungen dazu war, stelle ich Dir (fast) die Lösung zur Verfügung, die Du erstellen wolltest.
Die Tabelle EANs
Dies ist die Arbeitstabelle, wenn man so will. In der ersten Spalte trägst Du die EANs ein, die Du auslesen möchtest. Wenn Du das machst, wird jede zweite Zeile automatisch grau eingefärbt. Das passiert über das Worksheet_Change-Event, dessen Quellcode im Codemodul der Tabelle selbst abgelegt ist. Das Event wird nur bei Änderungen in der ersten Spalte ausgelöst.
EAN-Tabellen-Mechanik
In der Kopfzelle der ersten Spalte findest Du den Button 'EAN auf Ebay Suchseiten'. Bevor Du diesen anklickst, musst Du die EANs in einem Block selektieren, die Du auslesen möchtest. Ist nur eine Zelle markiert, wird nur diese EAN ausgelesen. Das ist erstmal gewöhnungsbedürftig, hat aber den Vorteil, dass man das Auslesen sehr gezielt steuern kann. Z.B. wenn noch eine EAN dazu kommt, fügst Du sie einfach der ersten Spalte hinzu und liest nur diese aus.
Zu Beginn des Auslesens springt die Tabelle auf die erste selektierte Zeile und ab Zeile 13 wird bei jeder EAN um eine Zeile nach unten gescrollt. Nach der letzten ausgelesenen EAN springt die Tabelle wieder auf die erste ausgelesene EAN zurück. Auf diese Weise hast Du während des Makrolaufs jederzeit den Fortschritt im Blick, ohne Dich um etwas kümmern zu müssen.
EAN-Tabellen-Datenbereiche
So, wie die automatische Färbung jeder zweiten Zeile dem Führen des Auges dient, habe ich auch Rahmenlinien eingezogen und die Gitternetzlinien der Tabelle selbst ausgeblendet. Weil ich ein fauler Mensch bin, habe ich die Rahmenlinien manuell eingefügt. Deshalb reichen sie die geamten über eine Million möglichen Zeilen nach unten. Löschst Du Zeilen, bleiben die Linien trotzdem bis unten bestehen. Die Linien selbst haben keinen Einfluss auf das echte Ende der Datentabelle.
Die Rahmenlinien teilen die Spalten in vier Bereiche. Der erste ist die erste Spalte. Die haben wir uns schon angeschaut. Der vierte Bereich ist einfach ein Zeitstempel, bestehend aus den Spalten für das Datum und die Uhrzeit. Ich finde diese Information sehr nützlich, wenn man in die Verlegenheit kommt, mal in älteren Tabellen etwas nachzusehen.
Der zweite und dritte Daten-Bereich sind verwand und deshalb auch nur durch eine gestrichelte Linie getrennt. Ich glaube hier löst sich auch Deine Annahme auf, dass die Suchergebnisse nicht immer chronologisch sind. Wenn es zu einem Suchterm auf Ebay nicht viele Suchergebnisse gibt, kommt es öfter vor, dass auch Treffer von internationalen Anbietern angezeigt werden. Diese befinden sich generell unter den deutschen Suchtreffern. Also ist es meistens so, dass das erste Datum eines internationalen Treffers vor den letzten deutschen Treffern liegt. Deshalb unterschiede ich zwischen diesen beiden Gruppen.
Da nur die erste Suchseite ausgelesen wird, werden maximal so viele Suchtreffer ausgelesen, wie auf der Ebay-Seite im Internet Explorer eingestellt sind. Die Grundeinstellung sind 50 Treffer pro Seite. Es kann auch für die deutschen Treffer vorkommen, dass z.B. 47 Treffer gefunden wurden, aber in der Spalte der wirklich ausgelesenen nur 42 steht. Ich habe das manuell geprüft und es stimmt. In solchen Fällen werden mehr Treffer ausgewiesen, als wirklich aufgelistet sind.
Für Internationale Treffer ist das der Standard. Es werden meistens mehr Treffer angezeigt, als wirklich ausgelesen werden. Du kannst dieser Tabelle auch entnehmen, wenn zu einer EAN nur internationale oder gar keine Treffer vorlagen.
Die Tabelle Ausgelesen
In dieser Tabelle landen alle ausgelesenen Werte, die EANs und auch Zeitstempel. Nun wolltest Du nur sechs Felder und stellst bei einem Blick in die Tabelle fest, dass die Tabelle 14 Spalten hat. Ok, in der ersten landen die EANs, damit die Suchtreffer zugeordnet werden können und damit das Farbschema richtig arbeiten kann. In den letzten beiden Spalten landen wieder die Zeitstempel.
Bleiben trotzdem elf Spalten für ausgelesene Daten, statt Deiner avisierten sechs. Zwar weiß ich nicht, was Du mit den Daten machen willst und wie Du sie verarbeitest, habe neben den drei genannten aber trotzdem noch fünf Werte aufgenommen, die ich für sinnvoll halte. Zur Erklärung hole ich etwas aus.
Unterscheidung der ausgelesenen Werte durch Einfärbung
Auch diese Tabelle wird mit einer Zeileneinfärbung versehen. Die ist allerdings etwas komplexer, als die der EAN-Tabelle. Dies ist der Grund, warum ich weiter vorne schrieb, dass es nur fast die Lösung ist, die Du erstellen wolltest. In der Tabelle Ausgelesen werden alle Zeilen direkt untereinander geschrieben, während Du Einzeltabellen vorgesehen hattest. Ich bilde diese Einzeltabellen durch Farbgebung und einer abschließenden Doppellinie unter jeder ausgelesenen EAN ab.
Jede ausgelesene EAN wird abwechseld mit einem Farbset versehen. Meine Kollegen lachen sich aufgrund meiner äußerst kreativen Farbgebungen immer halb tot. Du kannst Dir also gerne eigene Farben raussuchen ;-) Auf meinen Monitoren funktionieren die von mir gewählten jedenfalls für die Unterscheidungen, die ich herausstellen will.
Die grundlegenden Farbsets für wechselnde EAN sind Grün-/ Blautöne und Rosa-/ Orangetöne. Innerhalb dieser Sets gibt es helle und dunkle Farbtöne. In den hellen Tönen werden deutsche Suchtreffer ausgewiesen, in den dunkleren die internationalen. Innerhalb der eingefärbten Zeilen wechseln sich zusätzlich Farbtöne ab, um wieder Datengruppen zu bilden. Es gibt auch wieder eine manuelle Rahmengebung.
Jede zweite Zeile bleibt weiß, um die Augen nicht ganz zu killen ;-) Eine Ausnahme bildet die erste Spalte. In dieser werden wirklich alle Zellen eingefärbt. Der Grund ist, dass eine EAN auch nur einen einzigen Treffer liefern kann. Der wird zwar durch Doppellrahmenlinien eingegrenzt, aber man übersieht diese Treffer trotzem leicht, wenn es die weiße Zeile ist. Es fällt jedoch sofort auf, wenn zwischen lauter blauen oder grünen Zellen plötzlich eine rosa oder orangene auftaucht oder umgekehrt.
Die Einfärbung dieser Tabelle findet nur einmal ganz am Ende des Makrolaufs statt. Ansonsten bremst dieser Vorgang das Makro aus, weil ständig alle Zeilen neu eingefärbt würden. Außerhalb des Makros reagiert das Change-Event dieser Tabelle auch nur auf Änderungen in der ersten Spalte.
Die Datengruppen in der Tabelle Ausgelesen
Die erste Spalte mit den EANs und die letzten beiden mit den Zeitstempeln sind klar.
Start des Angebots
In der zweiten Spalte lege ich den Zeitstempel für den Angebotsstart ab. Den gibt es in Deinen Tabellen nicht (1 von 5 ;-) Der Zeitstempel liegt leider nur als Text vor, weil die Jahreszahl nicht mitgeliefert wird. Im HTML-Quelltext wird ausserdem vom Angebotsende gesprochen. Es ist aber der Einstellzeitpunkt. Ich habe das mit BayWotch geprüft.
Man könnte die Jahreszahl ermitteln. Dazu muss man aber chronologisch alle relevanten Daten durchgehen. Es gibt nämlich Angebote, die laufen bereits seit mehr als zwei Jahren. Dann hat man im letzten Datum z.B. einen Dezember, in dem davor einen April und im ersten einen Februar. Man könnte nun nur fiktive Jahreszahlen zuordnen, indem man von oben nach unten durchgeht, auf Jahreswechsel prüft und dann einfach abwärts zählt.
Dabei können aber natürlich falsche Jahreszahlen rauskommen, weil ein Angebot z.B. nicht erst 2 sondern schon 3 Jahre läuft. Die Jahreszahlen sind für dieses Makro allerdings nicht relevant. Die Datensätze pro EAN werden immer chronologisch von neu nach alt eingelesen. Also habe ich mir die Zeitstempelanalyse an dieser Stelle gespart.
Artikelbezeichnung und Artikelnummer
Die Artikelbezeichnung hast Du auch. Ich habe zusätzlich die Artikelnummer aufgenommen (2 von 5) Die Artikelnummer ist in der Tabelle als Link direkt auf die Angebotsseite auf ebay.de hinterlegt.
Anbietername, Shop-Name
Der Shop-Name kommt bei Dir nicht vor (3 von 5). Ich habe ihn der Vollständigkeit halber mit aufgenommen. Der Shop-Name kann auch Großbuchstaben enthalten, was in Ebay-Nicknames nicht geht. Der Shop-Name lautet in vielen Fällen auch anders, als der Nickname. Man kann über die Namensgebung teilweise Querverbindungen zwischen Accounts herstellen. Das ist dann eher mein Interesse. Nicht jeder Anbieter hat auch einen Shop, aber Anbieter mit Shop sind in den meisten Fällen gewerblich. Es gibt natürlich auch gewerbliche Anbieter ohne Shop.
Der Anbietername ist auf den Suchseiten ein Sonderfall muss ich sagen. Ist er zu lang, wir er nicht ganz ausgeschrieben, sondern abgebrochen und durch drei Punkte ergänzt, die anzeigen, dass da eigentlich mehr steht. Da unvollständige Daten ein echtes Ärgernis sind, habe ich für diesen Sonderfall einen Sonderfall im Makro integriert ;-)
Ist ein Anbietername mit drei Punkten abgeschlossen, ruft das Makro die zugehörige Angebotsseite über die Artikelnummer auf und liest den vollständigen Nickname dort aus. Weil die Angebotsseiten auf Ebay manchmal recht behäbig im Vergleich zum Rest sind, hat das zur Folge, dass man auf der EAN-Tabelle ein Stocken des Auslesens wahrnimmt, wenn ein Anbietername über den Extra Seitenaufruf geholt wird. Einfach laufen lassen und sich im Hinterkopf denken, später manuell würde es noch viel viel länger dauern.
An diesen beiden Spalten siehst Du übrigens, wenn die benötigten manuellen Voreinstellungen auf der Ebay-Seite im Internet Explorer nicht vorgenommen wurden. Dann bleibt die Spalte für Shop-Namen koplett leer und für Nicknames wird immer 'nicht gefunden' eingetragen. Alle anderen Daten werden aber geholt.
Dazu noch folgendes:
Ich habe das Makro auf drei verschiedenen Rechnern ausprobiert. Auf meinem Notebook mit Windows 7 und Excel 2016 werden die Namen immer nur für die erste EAN geholt. Danach muss man die Voreinstellungen im IE zurücksetzen und neu setzen. Super nervig das! Ich habe nicht rausgefunden, warum das so ist. Auf dem Rechner meiner Freundin, Windows 7, Excel 2010 läuft es hingegen völlig problemlos, genau wie gewünscht. Auf meinem Desktop PC, mit Windows 10 und Excel 2016 läuft es auch wie es soll.

In Deiner Vorlage hattest Du vor jede Zeile geschrieben, Anbieter 1, Anbieter 2, usw. Dieses Schema funktioniert nicht. Es ist durchaus normal, dass ein Anbieter mehrere Angebote laufen hat. Das kannst Du bereits bei den Suchtreffern Deiner Beispiel EAN sehen.
Willst Du etwas auf die Anbieternamen ausrechnen, folgender Tipp:
Tausche in allen Ebay-Nicknames die Sternchen * durch einen deutschen Umlaut aus. Ich nehme immer das große Ö. Umlaute gibt es in Ebay-Nicknames nicht. Das Sternchen ist aber in Ebay ein Jokerzeichen. Du rechnest bei Namen mit Sternchen also immer mit dem Risiko Werte aus mehreren Nicknames zu vermischen. Da kommt dann nur Grütze bei raus.
Einfach die Spalte mit den Nicknames markieren und den Ersetzen Dialog aufrufen. In das Suchfeld gibst Du ~* ein. Das Tilde-Zeichen vor dem Sternchen sorgt dafür, dass Excel das Sternchen nicht als Joker, sondern als Zeichen behandelt. Ohne das Tilde-Zeichen würdest Du alles in der Spalte erstzen. In das Ersetzenfeld gibst Du dann den Umlaut ein und klickst auf 'Alle erstezen'. Für den Rücktausch musst Du das Tilde-Zeichen im Ersetzenfeld dann weglassen.
Zustand
Dazu gibts eigentlich nix weiter zu sagen. Das dieses Makro nur neue Gegenstände auslesen soll war Dein Wunsch. Gesteuert wird das über einen Parameter, der mit der URL beim Seitenaufruf übergeben wird. Über diese Parameter werden auch die Sortierreihenfolge und nur Sofortkauf übergeben. Genauere Erklärungen dazu findest Du ganz am Anfang des Makros als Kommentare hinterlegt.
International
Das ist Spalte 4 von 5, die ich zugefügt habe. Wenn es internationale Suchtreffer gibt, werden in dieser Spalte die Länder eingetragen. Wie Du schnell feststellen wirst, steht da mitunter auch einfach nur mal 'ja' drin, statt ein Ländername. Nach meiner Beobachtung handelt es sich bei solchen internationalen Treffern um deutsche Anbieter, die international anbieten. Teilweise in anderen Währungen, aber eigentlich immer mit Lieferung ins Ausland.
Ich habe mich trotzdem für 'ja' entschieden, weil ich Deutschland verwirrnder fände und sich dieser Ländername halt auch nicht auslesen lässt.
Die Spalte International ist für die Farbgebung entscheidend. Über einen Eintrag wird nämlich der Farbwechsel von hell auf dunkel festgestellt und durchgeführt.
Artikelpreis, Versand, Stückpreis, PV
Der Artikelpreis ist klar. Die Versandkosten eigentlich auch. Hier kann es vorkommen, dass kostenloser Versand ausgelesen wird. In dem Fall wird 0,00 € eingetragen, damit die Stückpreisberechnung eine Spalte weiter ohne extra Prüfung durchgeführt werden kann.
Die zusätzliche Spalte PV ist Spalte 5 von 5, die ich eingefügt habe. PV steht für Preisvorschlag und ist wichtig, falls Du mit den Preisen rechnen musst. Du findest bei vielen Suchtreffern den Hinweis 'oder Preisvorschlag'. Das bedeutet, der Preis kann niedriger ausfallen, weil der Anbieter mit sich handeln lässt. Bei Angeboten mit möglichem Preisvorschlag wird auch in dieser Spalte ein 'ja' eingetragen.
Schlussbetrachtung
Das wars im Großen und Ganzen. Ich hoffe Du kannst damit gut arbeiten. Ich habe das Ganze zum Abschluss noch einmal mit 470 EANs die 5.000 ausgelesene Zeilen ergaben durchlaufen lassen und es hat reibungslos funktioniert. Du möchtest ja immer maximal 30 EANs abarbeiten, was dann gut gehen sollte. Achja, wenn Du das Makro noch einmal starten solltest, werden die dann ausgelesenen Werte hinten in der Ausgelesen-Tabelle angefügt. Es wird nix gelöscht und es findet auch keine Prüfung auf doppelte statt.
Es kann sein, dass Du EANs aus Kategorien ausliest, die noch andere Informationen in den Suchtreffern enthalten, die ich mit meinem Code nicht automatisch umgehe. Eigentlich wollte ich noch eine Spalte 'Bemerkungen' einbauen, in der sonstige Infos versammelt werden. Das habe ich aber sein gelassen. Weitere Infos sind Sachen wie 'Lieferung an Abholstation möglich', 'X% Rabatt', 'Nur noch X Artikel vorhanden', usw. Wie gesagt, was da sonst noch auftauchen kann weiß ich nicht im Detail.
Zur Kurzinformation hat jede Kopfzelle in beiden Tabellen einen Kommentar. Die Ausgelesen-Tabelle ist ausserdem in der Breite so eingestellt, dass die Spalten genau auf einen FullHD Bildschirm passen.
Wenn Du Fragen zur Programmierung hast, auf die ich hier ja nicht eingegangen bin, frag einfach nach. Ich weiß ja nicht, ob Dich das Thema allgemein interessiert oder Du in Zukunft noch mehr damit zu tun haben wirst.
Hier ist der Link zum Download der Datei:
https://www.herber.de/bbs/user/127992.xlsm
Viele Grüße,
Zwenn

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
01.03.2019 18:43:17
Hirtenanna
Hallo Zwenn,
um es mit einem Wort zu sagen: Bombastisch! Diese Lösung kann wesentlich mehr als ich mir gewünscht hätte. Wirklich tolle Arbeit! Vieles hatte ich tatsächlich garnicht auf dem Schirm und hätte sich wahrscheinlich wohl in den nachfolgenden Versuchen heraus gestellt, weshalb ich mir Deine Lösung etwas länger anschauen musste.
Vieles (insbesondere im Makro selbst) sind für mich boemische Dörfer, weshalb ich da auch kein Stück böse bin das Du hier alles von 0 aufgebaut hast und meine "Beispieltabelle" wirklich nur als Anhalt genommen hast um zu sehen um was es mir geht.
Bei den ersten Testläufen hat alles wunderbar gepasst und auch so wie Du es geschildert hast. Die Farben finde ich absolut ok wie sie sind. Vielleicht fehlt Deinen Kollegen manchmal die Erklärung dazu, warum jetzt gerade diese Zeile eine andere Farbe hat. Aber nach dem zweiten mal lesen habe ich das tatsächlich auch verstanden ;)
Spontan ist mir eine Sache aufgefallen: Manchmal passt die Sortierung nicht. Während bei einigen EAN's die Sortierung so ist wie sie sein soll (günstigster Artikel mit Versand - teuerster Artikel mit Versand), tauchen bei anderen EAN's immer mal ein günstigerer Artikel zwischendrin auf. Kannst Du sagen woran das liegen könnte?
Um es nochmal zu sagen: Wirklich ganz tolle Arbeit und ich hätte nie mit so einer detaillierten Tabelle gerechnet. Das erspart mir wirklich unglaublich viel Arbeit. Vielen, vielen Dank dafür!
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
01.03.2019 18:52:42
Hirtenanna
P.S.: Habe es mit anderen EAN's auch mal probiert, die Sortierung variiert auch hier.
AW: Ebay erste Suchseite auslesen - @Hirtenanna
01.03.2019 20:26:25
Zwenn
Hallo Hirtenanna,
es freut mich, wenn Du so zufrieden bist :-)
Deine Ausführungen zu der Sortierung verstehe ich nicht. Das Makro selbst holt die Suchtreffer mit der Sortierung "neueste zuerst" von Ebay ab. Woher hast Du die Sortierung mit dem günstigsten oder höchsten Preis? Wenn alle Daten ausgelesen sind kannst Du sie doch sortieren, wie Du willst.
Poste mal bitte ein paar EAN, bei denen der von Dir genannte Effekt auftritt. Ich versuche das dann nachzuvollziehen.
Viele Grüße,
Zwenn
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
03.03.2019 17:24:17
Hirtenanna
Hallo Zwenn,
https://www.herber.de/bbs/user/128068.xlsm
Dort findest Du die Datei mit 2 EANs wo dieses gut sichtbar ist, das die Stückpreise unsortiert sind. Ich brauche eine Sortierung Günstigster Artikel inkl. Versand - Teuerster Artikel inkl. Versand. Im Webbrowser selbst kann man dies ja im Suchergebnis sortieren lassen, weshalb ich bei meinem Beispielupload auch immer über die selbe erweiterte Suchseite gesucht habe, welche die Option "Niedrigster Preis inkl. Versand" enthält.
Ändere ich die in Deiner Tabelle nach dem auslesen die Sortierung bei "Stückpreis", sortiert er alles um, egal welche EAN. Vielleicht habe ich aber auch einen Denkfehler und kann die Sortierung nur in der jeweiligen EAN-Tabelle ändern?! Ich hoffe es ist verständlich um was es mir geht.
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
04.03.2019 11:23:07
Zwenn
Hallo Hirtenanna,
jetzt war ich erstmal verwirrt, habe aber nochmal die bisherigen Postings durchgesehen und habe festgestellt, dass ich die Sortierung missverstanden habe. Das Makro sortiert nach "Neu eingestellt". Wenn ich es jetzt richtig verstanden habe, willst Du aber eine Sortierung nach "Niedrigster Preis inkl. Versand". Dafür braucht man im Makro nur ein einziges Zeichen ändern, dann gibt es aber kein Einstelldatum mehr, weil Ebay das bei dieser Sortierung nicht mit ausweist.
Die Sortierung wird dann, wie auch schon für die Einstelldaten bei der Sortierung nach "Neu eingestellt", getrennt für die beiden Bereiche deutsche Treffer und internationale Treffer innerhalb einer EAN Tabelle vorgenommen. So liefert Ebay die Daten. Das ist eigentlich nicht so wild, denn die internationalen Treffer gehören streng genommen gar nicht zum Suchergebnis. Wie wir wissen, gibt es aber auch hier deutsche Anbieter.
Im Zweifelsfall musst Du für den niedrigsten Preis also immer den ersten Eintrag für deutsch und international zu einer EAN vergleichen. Solche Sachen kann man natürlich auch automatisieren. Aber solche Informationen sind nix für ein öffentliches Forum denke ich, weil es da schon an die Auswertung geht. Da müssten wir uns ggf. dann mal via Mail austauschen.
Ich gehe auf die Trennung von deutsch und international nochmal in dieser Form ein, weil der echte niedrigste Preis eines deutschen Anbieters zu Deiner zweiten EAN in der Tabelle der niedrigste Preis im Bereich International ist. Das ist nämlich Saturn und wenn man ins Angebot schaut, ist der Artikelstandord Deutschland und es wird auch nur innerhalb Deutschlands versendet. Warum dieser Treffer im International Bereich ausgewiesen wird und nicht bei den deutschen Treffern zu finden ist kann ich nicht sagen.
Um die Sortierung von "Neu eingestellt" auf "Niedrigster Preis inkl. Versand" umzustellen, muss der Parameter _sop=10 in der Konstanten zur GrundURL am Anfang des Makros auf _sop=15 umgestellt werden:
Const urlStatisch = "https://www.ebay.de/sch/i.html?_sop=15&LH_BIN=1&LH_ItemCondition=3&_nkw="
Noch kurz zur Sortierung innerhalb der einzelnen EAN-Tabellen in der Tabelle Ausgelesen:
Zwar sind die EAN-Tabellen jeweils optisch markiert, aber insgesamt sind alle zusammen für Excel eine einzige Tabelle. Wenn Du also die Excel-Sortierung einfach auf alle Daten in der Tabelle anwendest, ist danach alles durcheinander. Um eine EAN-Tabelle für sich zu sortieren, müsstest Du also jeden EAN-Bereich für sich markieren uind dann z.B. für den Stückpreis, nach Splalte K sortieren. Damit kämest Du allerdings vom Regen in die Traufe. Auch das ließe sich via Makro lösen. Am einfachsten wäre es aber, wenn Du nur den Paramterwert von 10 auf 15 änderst und Dir der Einstellzeitpunkt egal ist. Wie ich schon ausgeführt hatte, fehlt die Jahreszahl sowieso. Eine genaue Identifizierung des Zeitpunktes nach einer Umsortierung wäre also immer zweifelhaft.
Viele Grüße,
Zwenn
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
06.03.2019 10:21:58
Zwenn
Hallo Hirtenanna,
falls Du hier heute nochmal rein schaust. Die Sortierung der ganzen Tabelle geht natürlich, wenn Du zwei Sortierkriterien angibst. Als erstes die EAN und als zweites den Stückpreis. Dann werden alle "Einzeltabellen" in der von Dir gewünschten Reihenfolge angezeigt, wobei sich deutsche und internationale Treffer mischen. Kann man auch ins Makro aufnehmen, wenn Du die Einstellzeitpunkte behalten willst.
Viele Grüße,
Zwenn
AW: Ebay erste Suchseite auslesen - @Hirtenanna
06.03.2019 18:28:50
Hirtenanna
Hallo Zwenn,
ich muß einfach nochmal vielen Dank sagen! Mit soviel Engagement hätte ich nie im Leben gerechnet geschweige denn voraus gesetzt!
_sop=15
Diese Lösung führt bei mir genau zum gewünschten Ergebnis. Alles ist genau so sortiert, wie ich's brauche. Hier und da (sehr selten) findet sich mal ein Ausreisser eines Artikels der offensichtlich aus irrtümlichen Gründen den exakt gleichen EAN hat (bzw. im Suchergebnis auftaucht, da im Angebot aus irgendwelchen Gründen darauf verwiesen wird), aber da kann man nichts machen, da diese Ausreisser auch auftauchen wenn man normal über die Seite den EAN eingibt. Hier muß man dann einfach nur normalen Menschenverstand einsetzen um zu erkennen, das es so ist wie es ist ;)
Die Spalte "Angebotsstart" ist mit dieser Lösung (wie Du es ja auch geschrieben hast) hinfällig, da keine Ergebnisse auftauchen. Diese war für mich sowieso nicht relevant, weshalb das ein hinnehmbarer Verlust ist... Ein Klick und entfernen und dann passt das.
Etwas anderes: Ich habe mir während der Auswertung mal die Netzwerkauslastung angesehen und festgestellt, das bei weitem nicht die Geschwindigkeit genutzt wird, welche vorhanden wäre. Gibt es da einen Grund für nach Deinem Verständnis? In der Spitze werden die Daten mit 7600 kbit/s gezogen, aber fortlaufend zwischen 1000 kbit/s - 2000 kbit/s, bei maximal möglichen 50000 kbit/s. Halb so wild wenn Du die Antwort darauf nicht kennst, hatte mich nur etwas gewundert.
Anzeige
AW: Ebay erste Suchseite auslesen - @Hirtenanna
06.03.2019 19:16:55
Zwenn
Hallo Hirtenanna,
hast Du die Spalte für das Einstelldatum aus der Tabelle gelöscht oder habe ich das nur falsch verstanden?: "Ein Klick und entfernen und dann passt das."
Wenn Du die Spalte entfernst, stimmen die Kopfzellen nicht mehr, außer Du hast das Makro angepasst. Dazu reicht es theoretisch, wenn Du die Konstanten für die Spalten-Nummern angepasst hast. Der Vollständigkeit halber sollte dann aber auch der Aufruf der Funktion zum holen des Einstelldatums und das Eintragen des Selbigen auskommentiert werden.
Die Netzwerkauslastung hat nix mit dem Makro zu tun. Das füttert einfach nur den Internet Explorer, als würdest Du es manuell machen. Die erreichte Geschwindigkeit hängt unter anderem von der Qualität der Verbindung ab, die heutzutage aber eigentlich immer gut ist, außer bei Störungen im Netz. Vor allem hängt die Geschwindigkeit aber vom Server ab, von dem Du die Daten abrufst.
Wie ich in meinem ersten Posting dieses Thread schrieb, wirken die Angebotsseiten von Ebay mitunter etwas behäbig. Das liegt daran, dass der Angebotstext in einem iFrame liegt, dessen Inhalt erst geholt wird, wenn der Rest der Seite aufgebaut wurde. Es gibt also zwei Datenanforderungen an den Server.
Dann darf man nicht vergessen, dass Ebay eine sehr populäre Seite ist, die aber auch nur eine begrenzte Bandbreite zur Verfügung hat. Diese Bandbreite muss auf alle aktuell zugreifenden Nutzer verteilt werden. Das heißt, es ist auch normal, dass es Geschwindigkeitsunterschiede zu unterschiedlichen Uhrzeiten gibt. Die Frequentierung solcher Seiten ist am Abend und an den Wochenenden höher, als zu sonstigen Zeiten. Nachts dürfte sie am geringsten sein.
Unterm Strich ist das aber alles graue Theorie. Du rufst die Daten ab, wenn Du sie abrufst und sie kommen dann eben mit der Geschwindigkeit, die von der langsameren Seite der Verbindung grade zur Verfügung steht. In diesem Zusammenhang: In der Nacht von Donnerstag auf Freitag führt Ebay Wartungsarbeiten durch. Die dauern auch manchmal bis in den Freitag Vormittag rein. Das merkt man eigentlich nicht.
Es kann aber sein, dass es dann langsamer als gewohnt läuft. Zusätzlich kommt es auch vor, dass auf englischsprachige Server zugegriffen wird. Dann bekommst Du z.B. statt "Brandneu" "Brand New" in Deiner Tabelle angezeigt. Das ist ein Grund, warum ich möglichst alle Daten über die Struktur der Seite auslese und nicht über Schlüsselworte des Inhalts. Für Dein Makro habe ich aber an zwei Stellen für Vergleiche auf die Inhalte zurückgreifen müssen. Eigentlich an drei, aber die drei Punkte am Ende eines nicht ausgeschriebenen Nicknames sollten im Englischen die gleichen sein. Habe ich allerdings nicht getestet.
Falls Du noch weitere Fragen hast, erreichst Du mich unter zwenn_glueckspilz[at]gmx.de
Noch ein Thread im Forum ist nicht sinnvoll denke ich, da wir ja eine Art Privatunterhaltung führen. Dieser Thread ist morgen im Archiv verschwunden.
Viele Grüße,
Zwenn
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige