2017-12-29 3 views
1

In vb.net, kann ich eine Webseite als Zeichenfolge wie folgt herunterladen:Wie würde ich bestimmte Informationen auf einer Webseite mit ihrem ID-Wert abrufen?

Using ee As New System.Net.WebClient() 
     Dim reply As String = ee.DownloadString("https://pastebin.com/eHcQRiff") 
     MessageBox.Show(reply) 
    End Using 

es möglich wäre, einen ID-Tag eines Elements auf der Webseite angeben, so dass die Antwort die Informationen innerhalb nur dann ausgegeben der Code-Box/ID-Tag?

Beispiel:

Der ID-Tag von RAW Paste Data auf https://pastebin.com/eHcQRiff ist id="paste_code", die den folgenden Text enthält:

Test=1 
Test=2 

Gibt es trotzdem die WebClient nur Ausgabe zu erhalten, die gleiche Nachricht unter Verwendung der ID-Tag exakt (oder eine andere Methode)?

Antwort

1

können Sie HtmlAgilityPack Bibliothek verwenden

Dim document as HtmlAgilityPack.HtmlDocument = new HtmlAgilityPack.HtmlDocument() 
document.Load(@"C:\YourDownloadedHtml.html") 

Dim text as string = document.GetElementbyId("paste_code").InnerText 

Einige weitere Beispielcode:
(Getestet mit HtmlAgilityPack 1.6.10.0)

Dim html As string = "<TD width=""""50%""""><DIV align=right>Name :<B> </B></DIV></TD><TD width=""""50%""""><div id='i1'>SomeText</div></TD><TR vAlign=center>" 
Dim htmlDoc As HtmlDocument = New HtmlDocument 
htmlDoc.LoadHtml(html) 'To load from html string directly 
Dim name As String = htmlDoc.DocumentNode.SelectSingleNode("//td/div[@id='i1']").InnerText 
Console.WriteLine(name) 

Ausgang:
EINTEXT

+0

Danke für die Wiederholung ly Sunil !, Haben Sie irgendwelche Ideen, wie Sie dies tun können, ohne externe Bibliotheken hinzuzufügen? Ich möchte keine zusätzlichen DLLs mit meinem Programm haben:/ – User7071

+0

Ohne externe Bibliothek können Sie es entweder mit [HtmlDocument] (https://msdn.microsoft.com/en-us/library/system.windows.forms) tun. htmldocument (v = vs.110) .aspx? cs-save-lang = 1 und cs-lang = vb # code-snippet-3) oder [XmlDocument] (https://msdn.microsoft.com/en-us/library/ system.xml.xmldocument (v = vs.110) .aspx) analysieren. Mit HtmlDocument wäre der könnte fast ähnlich sein – Sunil

+0

Mit dem eingebauten WebBrowser herausgefunden, danke für die Hilfe! – User7071

Verwandte Themen