Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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

Inhalt aus URL/Webseiten auslesen

Inhalt aus URL/Webseiten auslesen
Alexander
Hallo zusammen,
ich habe mal wieder eine Frage:
Ich möchte gerne mit VBA Ihalte aus Webseiten auslesen. Ich habe dazu auch auf der Homepage etwas gefunden. Dabei wird der Quelltext der Seite als Textdatei gespeichert. Ich möchte aber nicht den Quelltext speichern, sondern die Informationen, die tatsächlich auf der Seite stehen. Wie das zunächst aussieht, ist eigentlich egal. Die relevanten Daten bekomme ich dann schon sortiert.
Die Seite ist
http://www.ksm-soccer.eu/verein.php?id=2730
Da kommen wir gleich zum nächsten Problem. Wenn man die Seite öffnet, wird automatisch 'Allgemeines" angezeigt. Mir geht es aber um den 'Kader' und die dortigen Spieler und deren Werte. Ist es möglich die Spieler bzw. deren Werte auszulesen?
Vielen Dank im Voraus für Eure Hilfe
Viele liebe Grüße
Alexander
AW: Inhalt aus URL/Webseiten auslesen
29.01.2009 08:16:03
Mike
Hey Alexander,
wenn Du noch mitteilst, was Du gefunden hast, wird ein Lösungs-
vorschlag einfacher.
Gruss
Mike
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Ups, ja klar, Verzeihung...unten der Quelltext aus den Herber VBA-Scripten, nur mit meiner Seite, orginal war das kicker.de angegeben.
Sub Aufruf()
Call URL_Load("http://www.ksm-soccer.eu/verein.php?id=2730 ")
End Sub



Private Sub URL_Load(ByVal sURL As String)
Dim appIE As Object
Dim sTxt As String
Set appIE = CreateObject("InternetExplorer.Application")
appIE.navigate sURL
Do: Loop Until appIE.Busy = False
Do: Loop Until appIE.Busy = False
sTxt = appIE.document.documentElement.outerHTML
Set appIE = Nothing
Close
Open ThisWorkbook.Path & "\test.txt" For Output As #1
Print #1, sTxt
Close
MsgBox "Der Text wurde gespeichert unter:" & vbLf & _
Application.Path & "\test.txt"
End Sub


Anzeige
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Ups, ja klar, Verzeihung...unten der Quelltext aus den Herber VBA-Scripten, nur mit meiner Seite, orginal war das kicker.de angegeben.
Sub Aufruf()
Call URL_Load("http://www.ksm-soccer.eu/verein.php?id=2730 ")
End Sub



Private Sub URL_Load(ByVal sURL As String)
Dim appIE As Object
Dim sTxt As String
Set appIE = CreateObject("InternetExplorer.Application")
appIE.navigate sURL
Do: Loop Until appIE.Busy = False
Do: Loop Until appIE.Busy = False
sTxt = appIE.document.documentElement.outerHTML
Set appIE = Nothing
Close
Open ThisWorkbook.Path & "\test.txt" For Output As #1
Print #1, sTxt
Close
MsgBox "Der Text wurde gespeichert unter:" & vbLf & _
Application.Path & "\test.txt"
End Sub


Anzeige
AW: Inhalt aus URL/Webseiten auslesen
29.01.2009 10:18:00
Tino
Hallo,
also genau dies habe ich in diesem Forum schon mal geschrieben,
dies ist eine Java programmierte Seite, bei manschen kommt man nicht an die Daten ran.
Dies wurde natürlich von einigen Provis dementiert „geht wie bei jeder anderen Seite auch…“,
wie haben diese aber nicht gezeigt.
Man kommt zwar auf die Kader Seite, aber an die Daten kommt man nicht heran,
weil diese nicht im Quellcode stehen.
Ich habe bis heute noch keinen Weg gefunden,
an solche Daten heranzukommen um diese nach Excel zu bekommen.
Außer mit SendKeys die Daten zu markieren und zu kopieren.
Vielleicht aber auch, weil ich mich mit Java nicht auskenne.
Solltest Du einen Weg finden, kannst Du Ihn hier ruhig preis geben.
Hier mal ein Beispiel wie es bei mir Funktioniert, aber mit SendKeys.
Option Explicit

Sub SearchAndClickLink()
Dim AnkerCount As Integer
Dim index As Integer
Dim Linkname As String
Dim appIE As Object
Dim i As Integer

Set appIE = CreateObject("InternetExplorer.application")

Application.ScreenUpdating = False

appIE.Navigate2 "http://www.ksm-soccer.eu/verein.php?id=2730"
appIE.Visible = True

While Not appIE.ReadyState = 4
    DoEvents
Wend

Application.Wait Now + TimeSerial(0, 0, 2)

Call TabelleVorbereiten
    
AnkerCount = appIE.Document.all.tags("a").Length
      
      For index = 0 To AnkerCount - 1
          
          If appIE.Document.all.tags("a")(index).innerText = "Kader" Then
              appIE.Document.all.tags("a")(index).Click
                
                AppActivate "KSM-Soccer"
                DoEvents
                   Application.Wait Now + TimeSerial(0, 0, 3)
                DoEvents
             
                     SendKeys "^a", True
                     SendKeys "^c", True
             
            appIE.Quit
            Exit For
          End If
      Next

 'sollte sich die NumLock-Taste ausschalten sonst löschen 
 SendKeys "{pgup}", True
      
 Application.OnTime Now + TimeSerial(0, 0, 1), "Einfuegen"
Application.ScreenUpdating = True
  End Sub

'Daten aus Zwischenablage einfügen 
Sub Einfuegen()
 Range("A1").PasteSpecial
 Range("A1").Select
End Sub

'Tabelle Daten Löschen und Bilder entfernen 
Sub TabelleVorbereiten()
Dim meShapes As Shape
Cells.Clear
For Each meShapes In ActiveSheet.Shapes
 If meShapes.Name Like "Picture*" Then
  meShapes.Delete
 End If
Next meShapes
End Sub


Man könnte die Daten auch aus der Zwischablage Zeile für Zeile auslesen (GetFromClipboard...)
um nur die gewünschten Daten zu bekommen.
Gruß Tino

Anzeige
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Vielen Dank für Deine Hilfe. Ein kleines Problem tritt bei mir allerdings noch auf. Ich habe den Code erst einmal so genommen und hinter eine Schaltfläche kopiert. Das Aufrufen der Seite funktioniert, er wechselt auch zur Ansicht des Kaders. Allerdings kommt dann der Hinweis, dass das Macro 'Einfuegen' nicht existiert. Die Funktion existiert aber genau wie in Deinem Code.
Hättest Du auch noch ein Code-Beispiel für Deinen Vorschlag '(GetFromClipboard...)'?
Ich verstehe zwar den Code wenn ich ihn lesen, allerdings kann ich selbst nur sehr wenig schreiben. Dazu fehlt mir sicher noch die Erfahrung :-(
Anzeige
AW: Inhalt aus URL/Webseiten auslesen
29.01.2009 11:37:00
Tino
Hallo,
ist er auch in einem Modul?
Gruß Tino
AW: Inhalt aus URL/Webseiten auslesen
Alexander
ich atte kein eigenes Modul angelegt. Ich habe eine Schaltfläche auf einem Sheet angelegt. Damit läuft es unter 'Objekte' unter dem Sheet auf welches ich die Schaltfläche platziert hatte.
AW: Inhalt aus URL/Webseiten auslesen
29.01.2009 12:02:00
Tino
Hallo,
und funktioniert es jetzt bei Dir?
Gruß Tino
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Ja, funktioniert. Ich habe jetzt einfach mal eine frische Datei genommen, Modul angelegt, Schaltfläche drüber...perfekt. Mal sehen was ich daraus zaubern kann :-)
Book, SendKeys
29.01.2009 16:15:00
Tino
Hallo,
war noch ein Fehler, mach aus der Zeile.
SendKeys "{pgup}", True
durch
SendKeys "{numlock}", True
Damit die Num Taste wieder aktiviert wird.
Das ist ein Book, dieser wird durch dass verwenden von Sendkeys ausgelöst.
Daher hasse ich Sendkeys, aber manchmal kommt man um die Verwendung nicht drum herum.
Vielleicht hat einer, eine bessere Idee?
Gruß Tino
Anzeige
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Hallo noch mal,
ich habe das jetzt zum Laufen bekommen. Hinter den Spielernamen auf meinem Excel-Sheet verbergen sich noch links. Wie komme ich an den Link hinter dem Spielernamen? Speziell die ID, die dahinter steckt, benötige ich.
Kann mir noch jemand helfen?
AW: Inhalt aus URL/Webseiten auslesen
30.01.2009 21:47:00
Tino
Hallo,
hiermit kommst Du an die Nummer in den Links, diese werden in Spalte H geschrieben.
Sub HyperlinkSuchen()
Dim A As Long
Dim sHyperl As String

For A = 1 To Cells.Hyperlinks.Count
 sHyperl = Cells.Hyperlinks(A).Address
 sHyperl = Right$(sHyperl, Len(sHyperl) - InStrRev(sHyperl, "("))
 sHyperl = Left$(sHyperl, InStr(sHyperl, ")") - 1)
 
 Range(Cells.Hyperlinks(A).Range.Address).Offset(0, 7) = _
                                    sHyperl
Next A
End Sub


Gruß Tino

Anzeige
AW: Inhalt aus URL/Webseiten auslesen
Alexander
Ihr seid für mich wirklich Helden. Hat einfach so funktioniert. Quelltext in mein Script kopiert und fertig. Vielen lieben Dank.
Vielleicht gibt es auch eine Lösung für ein weitergehendes Problem.
Aus den Informationen von der Seite generiere ich mir links zu den Spielern, die ich dann auf die gleiche Art und Weise aufrufe wie die Teams.
Ein Spielerlink sieht folgendermaßen aus: http://www.ksm-soccer.de/spieler.php?id=718834
Wenn ich mir die Seite des Spieler aufrufe und die Unterseite 'Eigenschaften' aufrufe, dann findet man wieder verschiedene Informationen. Die erste Information 'EWS' wird leider nur durch eine Grafik dargestellt. Hat jemand noch eine Idee, wie man diese Interpretieren kann? Geht so etwas überhaupt?
Viele liebe Grüße
Alexander
Anzeige
vielleicht so
02.02.2009 10:03:00
Tino
Hallo,
vielleicht so, jetzt wird die Tabelle2 für die Daten verwendet.
Option Explicit

Sub SearchAndClickLink2()
Dim appIE As Object

Set appIE = CreateObject("InternetExplorer.application")

Application.ScreenUpdating = False
Call TabelleVorbereiten2

appIE.Navigate2 "http://www.ksm-soccer.de/spieler.php?id=718834" 'Spielerlink 
appIE.Visible = True

While Not appIE.ReadyState = 4
    DoEvents
Wend

Application.Wait Now + TimeSerial(0, 0, 3)
DoEvents
AppActivate "KSM-Soccer"
     SendKeys "^a", True
     SendKeys "^c", True
appIE.Quit

 'sollte sich die NumLock-Taste ausschalten sonst löschen 
SendKeys "{numlock}", True
      
Application.OnTime Now + TimeSerial(0, 0, 1), "Einfuegen2"
Application.ScreenUpdating = True
  End Sub

'Daten aus Zwischenablage einfügen 
Sub Einfuegen2()
Dim meShapes As Shape
With Sheets("Tabelle2")
  .UsedRange.Clear
  .Range("A1").PasteSpecial
 For Each meShapes In .Shapes
    If meShapes.Name Like "Picture*" Then
     meShapes.Delete
    End If
 Next meShapes
End With
End Sub

'Tabelle Daten Löschen und Bilder entfernen 
Sub TabelleVorbereiten2()
Dim meShapes As Shape
With Sheets("Tabelle2")
.Cells.Clear
For Each meShapes In .Shapes
 If meShapes.Name Like "Picture*" Then
  meShapes.Delete
 End If
Next meShapes
End With
End Sub


Gruß Tino

Anzeige
AW: Inhalt aus URL/Webseiten auslesen
30.01.2009 22:18:25
Anton
Hallo ,
oder so:

Sub SearchAndClickLink()  
  Dim AnkerCount As Integer    
  Dim index As Integer    
  Dim Linkname As String, strID As String  
  Dim appIE As Object  
  Dim i As Integer    
  Set appIE = CreateObject("InternetExplorer.application")  
  appIE.Navigate2 "http://www.ksm-soccer.eu/verein.php?id=2730"
 
appIE.Visible = True
  While Not appIE.ReadyState = 4  
    DoEvents
  Wend
  Application.Wait Now + TimeSerial(0, 0, 2)
  AnkerCount = appIE.Document.all.tags("a").Length
  For index = 0 To AnkerCount - 1  
    If appIE.Document.all.tags("a")(index).innertext = "Kader" Then  
      appIE.Document.all.tags("a")(index).Click
      Application.Wait Now + TimeSerial(0, 0, 3)
     'Seiteninhalt im Direktfenster anzeigen
      Debug.Print appIE.Document.body.innertext  
      For i = 0 To appIE.Document.links.Length - 1  
        If InStr(1, appIE.Document.links(i), "javascript: dverein_openSpieler", vbTextCompare) <> 0 Then    
          strID = Replace(appIE.Document.links(i), "javascript: dverein_openSpieler(", "")
          strID = Replace(strID, ")", "")
         'Spielernamen und IDs im Direktfenster anzeigen
          Debug.Print appIE.Document.links(i).innertext & vbTab & strID  
        End If  
      Next
      Exit For  
    End If  
  Next
  appIE.Quit
End Sub  

mfg Anton
Anzeige
zu Deiner 2. Frage...
29.01.2009 11:47:00
Tino
Hallo,
, kann ich versuchen etwas aufzubauen, wird aber ein weilchen dauern,
bin momentahn mit etwas anderem beschäftigt.
Du kannst aber selbst mal über Google oder hier im Archiv nach
Microsoft Forms 2.0 Object Library
und , oder
GetFromClipboard
und , oder
GetText
usw…
ausschau halten, dass sind die Stichwörter für die Daten der Windows Zwischenablage.
Solltest Du nicht klar kommen, kannst Du dich nochmal melden.
Gruß Tino

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige