Verschachtelte Div Container auslesen | Amazon Angebote auslesen Preisverlauf

  • VB.NET
  • .NET (FX) 4.5–4.8

    Verschachtelte Div Container auslesen | Amazon Angebote auslesen Preisverlauf

    Hi, ich will ein Programm schreiben welches für einen Amazon Artikel den Preisverlauf der verschiedenen Verkäufer aufzeichnet.

    Im ersten Step habe ich ein Listview erstellt wo ich colums einfüge mit allen Verkäufern eines Artikels.
    Das funktioniert auch mit folgendem Code:

    VB.NET-Quellcode

    1. Public Sub getVerkäuferName()
    2. Form1.ListView1.Columns.Clear()
    3. Form1.ListView1.Columns.Add("Datum | Zeit")
    4. For Each h As HtmlElement In Form1.WebBrowser1.Document.GetElementsByTagName("h3")
    5. If Not Object.ReferenceEquals(h.GetAttribute("className"), Nothing) AndAlso h.GetAttribute("className").Equals("a-spacing-none olpSellerName") Then
    6. If h.InnerText <> " " Then
    7. Form1.ListView1.Columns.Add(h.InnerText)
    8. Else
    9. Form1.ListView1.Columns.Add("AMAZON")
    10. End If
    11. End If
    12. Next
    13. End Sub


    Nun will ich den Preis eines Verkäufers und seinen Namen auslesen. Problem ist hier das die Infos nicht alle in einem div container sind sondern verstreut in einem div container :

    HTML-Quellcode

    1. <div class="a">
    2. <div class"preis">
    3. <span class="xx">EUR 199,00</span>
    4. </div>
    5. <div class="b">
    6. <span class="c" >
    7. <a href="..." >Verkäufer</a>
    8. </span>
    9. </div>
    10. </div>


    Diese Struktur wiederholt sich für jeden Verkäufer der den Artikel auch anbietet.
    Also muss ich ja in der For Each Schleife beliebn und dort weiter abfragen

    VB.NET-Quellcode

    1. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    2. Dim preis As String
    3. Dim name As String
    4. For Each h As HtmlElement In WebBrowser1.Document.GetElementsByTagName("span")
    5. If Not Object.ReferenceEquals(h.GetAttribute("className"), Nothing) AndAlso h.GetAttribute("className").Equals("a-size-large a-color-price olpOfferPrice a-text-bold") Then
    6. preis = h.InnerText
    7. For Each h_name As HtmlElement In h.GetElementsByTagName("span")
    8. If Not Object.ReferenceEquals(h.GetAttribute("className"), Nothing) AndAlso h.GetAttribute("className").Equals("a-size-medium a-text-bold") Then
    9. name = h_name.InnerText
    10. Button4.Text = preis & vbCrLf & name
    11. End If
    12. Next
    13. End If
    14. Next
    15. End Sub


    Aber hier kommt kein Ergebnis ( auch keine Fehlermeldung )

    Bin nun schon seit Tagen dran und google kann mir auch nicht helfen. ?(

    Kann mir da bitte einer von euch helfen?