2016-07-16 9 views
0

Ich möchte bestimmte Werte von einer Website extrahieren, die mir den Fortschritt in einem Spiel zeigen, um sie in einer vb.net-Anwendung für einen einfacheren Zugriff anzuzeigen. Der HTML-Code Ich möchte die Daten erhalten, stammt von:Bestimmte Daten aus der HTML-Quelle abrufen und in einem Etikett anzeigen

<div id="freemodeRank" class="page-section clearfix"> 
    <div class="rankHex right-grad bronze"> 
     <h3 style="font-size:54px">225</h3> 
     <p style="text-align:center;"></p> 
    </div> 
    <div class="rankXP"> 
     <div class="clearfix"> 
      <h3 class="left">5.6M<span> RP</span></h3> 
     </div> 
     <div class="rankBar"> 
      <h4>Play Time: 58d 4h 23m</h4> 

Die Daten Ich mag würde von diesem Code bekommen sind:

"225", "5.6M" und „Play Time: 58d 4h 23m "

Jede Hilfe wäre großartig.

+0

Code anzeigen, was haben Sie versucht, und wo – Fabio

+0

gestapelt bekommen habe ich nicht wirklich Code für das Programm. Ich möchte nur diese Daten bekommen und sie dann in Etiketten zeigen. –

+0

Können Sie Regex verwenden? –

Antwort

0

Sie können eine GetBetween-Funktion verwenden, um Ihnen dabei zu helfen.

Public Function GetBetween(ByRef sSearch As String, ByRef sStart As String, ByRef sStop As String, _ 
               Optional ByRef lSearch As Long = 1) As String 
    lSearch = InStr(lSearch, sSearch, sStart) 
    If lSearch > 0 Then 
     lSearch = lSearch + Len(sStart) 
     Dim lTemp As Long 
     lTemp = InStr(lSearch, sSearch, sStop) 
     If lTemp > lSearch Then 
      GetBetween = Mid$(sSearch, lSearch, lTemp - lSearch) 
     End If 
    End If 
End Function 

Quelle: http://www.devx.com/tips/Tip/40934

Sie können es nennen wie diese

'Assuming htmlData is the variable where your html string is stored 
Dim rpAmount As String = GetBetween(htmlData, "<h3 class=""left"">", "<span> RP</span></h3>") 

Gleiches gilt den Rest der Werte, die Sie

+0

Danke für die Hilfe. Ein Problem, das ich habe, ist "InStr" hat einen Fehler: "Gibt eine ganze Zahl zurück, die die Startposition des ersten Auftretens einer Zeichenfolge in einer anderen angibt.", Wie behebe ich das? –

+0

Was ist die Fehlermeldung? Sie haben eine Beschreibung von InStr gesendet. Können Sie auch posten, wie Sie diese Funktion aufrufen? (die Zeile des Codes) – ebildude123

+0

@ egdude123 - 'vb6'? – Fabio

0

HTML kratzen wollen Xml ist. Verwenden Sie die Klasse XDocument, um Ihre Daten zu erhalten. XDocument Class

Dim html As String = "<html><div id=""freemodeRank""><h3>255</h3></div></html>" 

Dim document As XDocument = XDocument.Parse(html) 
Dim value As String = document.Root... 
           <div>. 
           Where(Function(div) [email protected]("freemodeRank")). 
           <h3>. 
           First(). 
           Value 

XML Axis Properties (Visual Basic)

LINQ to XML ohne Achse Eigenschaften

Dim value As String = 
    document.Root. 
      Descendants("div"). 
      Where(Function(div) div.Attribute("id").Value.Equals("freemodeRank")). 
      Element("h3"). 
      Value 

Overview of LINQ to XML in Visual Basic

Verwandte Themen