Hey,
ich habe mir eine kleine Funktion gebaut, welche von einem Ebay Link alle Preise der Ergebnisse zusammenrechnet und dann den Durchschnitt berechnet.
Bei einem Link klappt das perfekt.
Jetzt habe ich eine Textbox mit mehreren Links untereinander. Ich hole nun von jedem Link per Webrequest den Quelltext und versuche das gleiche Prozedere wie oben, nur eben für jeden Link.
Leider klappt das ganze nicht. Die ersten paar Links berechnet er scheinbar richtig, dann wirds wild und es kommen extrem hohe Zahlen raus, was nicht stimmen kann (geprüft).
Liegt es an der Menge?
Hier mal mein Code:
Was halt leider rauskommt ist das:
Nur die ersten 3 berechnet er korrekt.
Habe auch schon ein Sleep probiert, ohne Erfolg.
Einzelne Artikel berechnen klappt problemlos, aber nicht bei mehreren..
Habt ihr eine Idee, woran das liegen könnte? Eigentlich sollte er doch brav die Schleifen durchlaufen, auch wenns lange dauert, oder?
Vielen Dank!
Gruß xored
ich habe mir eine kleine Funktion gebaut, welche von einem Ebay Link alle Preise der Ergebnisse zusammenrechnet und dann den Durchschnitt berechnet.
Bei einem Link klappt das perfekt.
Jetzt habe ich eine Textbox mit mehreren Links untereinander. Ich hole nun von jedem Link per Webrequest den Quelltext und versuche das gleiche Prozedere wie oben, nur eben für jeden Link.
Leider klappt das ganze nicht. Die ersten paar Links berechnet er scheinbar richtig, dann wirds wild und es kommen extrem hohe Zahlen raus, was nicht stimmen kann (geprüft).
Liegt es an der Menge?
Hier mal mein Code:
VB.NET-Quellcode
- lvEbay.Items.Clear() 'ListView mit dem Aufbau: Artikelname:Durchschnittspreis
- For Each strLine As String In tbLinksEbay.Text.Split(vbNewLine)
- TempLB.Items.Clear() 'ListBox wo temporär alle Preise eines Artikels drin stehen
- If (strLine.Length < 1) Then
- Dim lvi As New ListViewItem("")
- lvi.SubItems.Add("")
- lvEbay.Items.Add(lvi)
- Else
- Dim Link = "https://www.ebay.de/sch/i.html?_from=R40&_nkw=" & strLine.Replace(" ", "+") & " &_sacat=0&rt=nc" 'Hier baue ich den Ebay-Suchlink zusammen
- If Not strLine.Replace(" ", "+") = "" Then
- Try
- Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create(Link)
- Dim response As System.Net.HttpWebResponse = request.GetResponse()
- Dim sr As System.IO.StreamReader = New System.IO.StreamReader(response.GetResponseStream())
- Dim sourcecode As String = sr.ReadToEnd()
- Dim matches As MatchCollection = Regex.Matches(sourcecode, "(?<=<span class=s-item__price><span class=POSITIVE>)(.*?)(?=</span></span>)") 'Regex-Pattern um den Preis zu finden
- For Each m As Match In matches
- If Not (m.Groups(1).Value.Replace("EUR ", "").Contains("<")) Then
- TempLB.Items.Add(m.Groups(1).Value.Replace("EUR ", ""))
- End If
- Next
- Dim Anzahl As Integer = TempLB.Items.Count
- Dim Preis As Double
- 'Hier addiere ich alle Preise
- For x As Integer = 0 To TempLB.Items.Count - 1
- Preis = Preis + Double.Parse(TempLB.Items(x).ToString)
- Next
- Dim lvi As New ListViewItem(strLine)
- 'Hier teile ich den Preis durch die Anzahl der Preise
- lvi.SubItems.Add(Math.Round(Double.Parse(Preis) / Anzahl, 2))
- lvEbay.Items.Add(lvi)
- Catch
- Dim lvi As New ListViewItem("URL Fehler")
- lvi.SubItems.Add("URL Fehler")
- lvIDealo.Items.Add(lvi)
- End Try
- End If
- End If
- Next
Was halt leider rauskommt ist das:
Nur die ersten 3 berechnet er korrekt.
Habe auch schon ein Sleep probiert, ohne Erfolg.
Einzelne Artikel berechnen klappt problemlos, aber nicht bei mehreren..
Habt ihr eine Idee, woran das liegen könnte? Eigentlich sollte er doch brav die Schleifen durchlaufen, auch wenns lange dauert, oder?
Vielen Dank!
Gruß xored
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „xored“ ()