Anzeige
Archiv - Navigation
1616to1620
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

Per Makro Daten auslesen

Per Makro Daten auslesen
08.04.2018 19:39:31
Christian
Hallo an euch alle,
ich wollte euch beten, mich bei einer automatisierten Abfrage von Daten aus dem Internet zu untersützen.
Ich hatte schonmal eine Makrolösung, die ich auch in der Datei gespeichert habe, jedoch hat sich der Aufbau der Seite, die mir die Daten liefert, vollkommen geändert.
Ich gebe das vor, was in Tabelle "ist" steht, inkl. der Formel in H1 und rauskommen soll die Tabelle "soll". Ebenfalls gebe ich vor, was in Tabelle "Datenquelle" steht.
die Codes in Spalte F stecken in den Adressen der Hyperlinks die jeder Schauspielername in der Datenquelle beinhaltet.
die Namen in Spalte G stehen in der Datenquelle
die Geburtsdaten in Spalte H stehen leider nur noch auf den IMDB seiten selbst, früher standen sie auch in der Datenquelle. Daher meine Frage ob es möglich ist, per Makro die Geburtsdaten von den IMDB Seiten der Schauspieler auszulesen und in Spalte H zu schreiben.
Im Beispiel von Kay Hawtrey
https://www.imdb.com/name/nm0370443/
da steht ja groß auf der Seite Born: November 8, 1926
Das Ganze ist so gedacht, dass wenn ich das was in Tabelle "soll" steht habe, dass ich dann in Zeile 5 einen neuen Filmtitel und neuen Inhalt in der "Datenquelle" vorgebe ich das ganze dann wiederholen kann, so wie es mit dem alten Makro auch schon möglich war.
Demnach soll das Makro den Inhalt der Tabelle Datenquelle zum Schluss löschen.
Ist das umsetzbar?
Viele Grüße und danke
Christian
https://www.herber.de/bbs/user/120931.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Makro Daten auslesen
08.04.2018 20:59:51
Zwenn
Hallo Christian,
bist Du der gleiche Christian, wie mit den Chartlisten?
Man kann so ziemlich alles aus HTML-Seiten auslesen. Hast Du auch die Adresse, die Du eigentlich ausliest und aus der dann die Seiten der einzelnen Schauspieler aufzurufen sind? Um das Geburtsdatum aus der Beispielseite für Kay Hawtrey auszulesen, funktioniert z.B. folgender Code:

Sub BirthDate()
Dim browser As Object       'Zu verwendende Internet Explorer Instanz
Dim knotenAst As Object     'HTML Teilstruktur des DOM (Document Object Model) aufnehmen
Dim url As String           'Aktuell auszulesende Internet-Adresse
Dim geburtsDatum As String  'Zum Speichern des Geburtsdatums
'Adresse zu Kay Hawtrey
'(dynamisierbar mit Schleife für beliebig viele Schauspieler)
url = "https://www.imdb.com/name/nm0370443/"
'Aufrufen der Schauspieler-Seite im Internet Explorer
Set browser = CreateObject("internetexplorer.application")  'IE als Browser setzen
browser.Visible = False                                     'IE unsichtbar
browser.navigate url                                        'URL aufrufen
Do Until browser.readyState = 4: DoEvents: Loop             'Warten bis Seite ganz geladen
'Ausschneiden des ersten Time-Tag aus dem HTML-Code
Set knotenAst = browser.document.getElementsByTagName("time")(0)
'Prüfen, ob ein Time-Tag vorhanden ist
If Not knotenAst Is Nothing Then
geburtsDatum = knotenAst.getAttribute("datetime")
MsgBox "Das Geburtsdatum lautet: " & geburtsDatum
Else
MsgBox "Zu diesem Schauspieler/dieser Schauspielerin gibt es kein Geburtsdatum."
End If
'Aufräumen
browser.Quit
Set browser = Nothing
Set knotenAst = Nothing
End Sub
Viele Grüße,
Zwenn
Anzeige
AW: Per Makro Daten auslesen
08.04.2018 21:11:09
Christian
Hallo Zwenn,
ja der bin ich.
Danke für die Mühe. Brauch jedoch weder Message Boxen noch eine Ausgabe wenn Fehler, weil bei den Schauspielern die abgefragt werden steht immer ein Datum dabei.
Die Idee war einfach sie in besagte Spalte zu schreiben.
Mit Adresse wo ich das ganze auslese meinst du damit die Quelle für das Blatt Datenquelle?
https://www.imdb.com/search/name?gender=female&roles=tt0259822&sort=birth_date,desc&count=100
bzw. dann später dasselbe nochmal für die Männer.
Allerdings existiert bislang noch keine Liste aller tt-codes die ausgelesen werden sollen. Die wollte ich nacheinander raussuchen und dann direkt auswerten ohne vor der Auswertung eine vollständige Liste zu erstellen.
Gruß
Christian
Anzeige
AW: Per Makro Daten auslesen
08.04.2018 21:32:39
Zwenn
Hallo Christian,
Schön, dass Du es bist :-)
Du solltest für solche Anfragen dann doch Kopfzeilen mit angeben. Sonst kann niemand die einzelnen Werte zuordnen. Was ist ein tt-Wert und wo findet man den? Was sind die restlichen Werte, die unterschiedlichen Daten?
Unter dem angegebenen Link sind nur 40 Schauspielerinnen aufgeführt, statt 100, wie ich erwartet hätte. Spielt für das Auslesen eigentlich keine Rolle, ist mir nur aufgefallen.
Das für alle Schauspielerinnen in der Liste Geburtsdaten angegeben sind stimmt leider nicht. Ich wollte nachsehen, ob es ein Foto gibt, wenn man direkt die Seite der Schauspielerin aufruft. Für Chantelle Jewkes gibt es da dann eigentlich gar nix:
https://www.imdb.com/name/nm2739722/
Natürlich willst Du keine Message Boxen, das weiß ich. Der Code sollte nur veranschaulichen, wie es funktioniert. Dir wird ja auch aufgefallen sein, dass das Datum nicht als November 8, 1926, sondern im Format 1926-11-8 ausgegeben wurde. Falls Du das Makro ausprobiert hast ;-) Du kannst das Datum dann in dem Format bekommen, wie Du es gerne möchtest.
Gruß,
Zwenn
Anzeige
AW: Per Makro Daten auslesen
08.04.2018 21:59:37
Christian
Hallo Zwenn,
wenn man die Seite des Films
https://www.imdb.com/title/tt0259822/
aufruft, hast du recht da stehen auch Leute ohne Geburtsdatum.
Bei der Abfrage
https://www.imdb.com/search/name?gender=female&roles=tt0259822&sort=birth_date,desc&count=100
jedoch habe ich vorher ausgewählt dass nur Leute mit Geburtstag angezeigt werden. Die ohne Geburtstag sind für meine Tabelle völlig irrelevant.
mit tt wert meine ich den IMDB Code der Filme in diesem Fall tt0259822
Ich sagte ja, mein Plan war es das was in der Tabelle "ist" und in der Tabelle "Datenquelle" steht von Hand vorzugeben.
Aber da ich ja weiß dass du jemand bist, der alles per Abfrage und möglichst wenig von Hand vorgegeben macht, das Veröffentlichungsdatum in Spalte C kommt von der Seite
https://www.imdb.com/title/tt0259822/releaseinfo
Dort das oberste Datum, dort könnte man auch den Filmnamem herholen.
Aber wie gesagt eine Liste aller tt codes die ausgewertet werden sollen muss noch erstellt werden.
Also zur Erklärung
Spalte A - IMDB Code des Films, zu finden in der URL zu dem Film, in unserem Beispiel
https://www.imdb.com/title/tt0259822
wie gesagt da hab ich noch keine vollstndige Liste
Spalte B - Filmtitel wie auf https://www.imdb.com/title/tt0259822 genannt.
Falls der deutsche Titel vom Originaltitel abweicht wie z.b. bei https://www.imdb.com/title/tt0139134/ nehme ich den Originaltitel.
Spalte C - Datum der ersten Veröffentlichung zu finden unter
https://www.imdb.com/title/tt0139134/releaseinfo (nicht identisch mit dem Datum das unter
https://www.imdb.com/title/tt0139134/ steht, dort steht das VÖ Datum in Deutschland).
Spalte E - Umrechnen des Datums in Spalte C in TT.MM.JJJJ
Spalte F - IMDB Code der Schauspieler, zu finden in der URL zu den Schauspielern, bei Kay Hawtrey
https://www.imdb.com/name/nm0370443/
Spalte G - Name der Schauspieler, im Beispiel auch unter https://www.imdb.com/name/nm0370443/ zu finden.
Spalte H - Geburtsdatum der Schauspieler zu finden in der URL zu den Schauspielern, bei Kay Hawtrey
https://www.imdb.com/name/nm0370443/
Spalte I - Umrechnen des Datums in Spalte F in TT.MM.JJJJ
Spalte D ist mit absicht freigeblieben, liegt daran, wenn man ein Datum aus
https://www.imdb.com/title/tt0259822/releaseinfo
kopiert und in Excel einfügt, wird warum auch immer die Zelle rechts nebendran geleert, bzw. mit nichts überschrieben.
Die Abfrage in dem Blatt Datenquelle ist dazu da, die Schauspieler in der Beispieltabelle diese 4 herauszufiltern, die ich benötige.
Und ja habe dein Makro natürlich getestet, wusste aber im Moment noch nicht um was ich dich genau bitten soll was mit dem Datum in diesem Format geschehen soll. Eben weil es ein anderes Format als bislang ist und damit meine Formel zum umrechnen unbrauchbar wird.
Also entweder würde ich mir wünschen dass das Datum so ausgegeben wird wie Spalte H oder direkt als TT.MM.JJJJ
Gruß
Christian
Anzeige
Nachtrag
08.04.2018 22:04:57
Christian
Was jedoch eine Rolle spielt,
sollten mehr als 100 Schauspielerinnen mit Geburtstag mitspielen, bei seit ewigkeiten laufenden serien können das sogar über 1000 sein, fängt IMDB an, das auf mehrere Seiten aufzuteilen. Mehr als 100 gleichzeitig anzeigen macht IMDB nicht mit.
https://www.imdb.com/search/name?gender=female&roles=tt0053494&has=birth-date&count=100
als Beispiel
Gruß
Christian
AW: Nachtrag
08.04.2018 22:58:24
Zwenn
So,
weißt Du, ich glaube wir zwei würden uns echt gut verstehen, wenn wir uns persönlich treffen würden. Du wohnst nicht zufällig in Berlin oder? ;-)
Also ... Es braucht einen Ankerpunkt, von dem man ausgehen und jede Information erreichen kann. Dann würde auch dies sich alles automatisieren lassen, soweit ich es im Moment überblicke. Meine Frage jetzt ist: Was ist Dir wichtiger? Erstmal das Chart-Makro fertig stellen (habe da noch etwas zu den Zeiten beobachtet, wann was veröffentlicht wird) oder dieses mit Schauspielern und Filmen? Ich weiß ja nicht, wofür Du all dies benötigst.
Die Frage ist dann für die Film/ Schauspieler-Sache auch, ob Du das öfter brauchst (also auch zukünftig) oder nur für ein paar Filme? Stimmt, dass ich gerne alles automatisiere, was geht. Allerdings macht das auch für mich nur Sinn, wenn die Automatisierung einen Zeitgewinn, bzw. weniger Stress bedeutet. Wenn es eine einmalige Sache ist ... So what, dann nicht.
Ich habe mal das Buch 'Code Complete' gelesen, welches von einem Microsoft Entwickler geschrieben wurde. Darin gab es einen Satz, den ich für mich unterschreiben kann:
(sinngemäß) Ein Entwickler würde immer 90 % der verfügbaren Zeit für eine Aufgabe darauf verwenden, diese Aufgabe zu automatisieren, bevor er sie manuell ausführen muss.
Bleibt die Frage, gibt es diesen Ankerpunkt, um alle Infos zusammen zu tragen? Es ging bei Deiner Anfrage zunächst um Schauspieler, nun geht es um Filme. Da frage ich mich also, gibt es bestimmte Filme, zu denen Du die Bestezungsliste auslesen wilst (mit Schauspielern, zu denen ein Geburtsdatum vorliegt)? Oder was ist Dein Startpunkt, was ist Dein Ziel?
Wie gesagt, auch gerne via Mail. Meine Adresse hast Du ja.
Viele Grüße,
Zwenn
Anzeige
Noch etwas zu den Geburtsdaten
09.04.2018 11:49:37
Zwenn
Hallo Christian,
ich habe mir die Beispielliste mit den 40 Schauspielerinnen nochmal angesehen. Es liegen lediglich Geburtsdaten zu den ersten 4 in der Liste vor. Mit der URL
https://www.imdb.com/search/name?gender=female&roles=tt0259822&sort=birth_date,desc&count=100
wählst Du nicht nur die Schauspielerinnen mit eingetragenem Geburtstag aus, sondern die Liste wird lediglich nach Geburtstagen sortiert. Ab dem fünften Eintrag gibt es im Beispiel kein Geburtstag mehr abzugreifen. Oder bist Du dort angemeldet und kannst mehr sehen?
Viele Grüße,
Zwenn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige