1Danke
ERLEDIGT
JA
JA
ANTWORTEN
13
13
ZUGRIFFE
651
651
EMPFEHLEN
-
Hallo
Ich möchte von einer Website zbs. den Teil zwischen <title> und </title> auslesen.
In diesem fall wäre es ja der Titel...
Leider weiß ich nicht wie ich jetzt einen bestimmten teil auslesen kann.
Die Seite downloaden und in einen String laden habe ich wie folgt gemacht:
Code :1 2 3 4
My.Computer.Network.DownloadFile("http://server.dyndns.tv/test.htm", My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") Dim Dat() = File.ReadAllLines(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") File.Delete(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") RichTextBox1.Lines = Dat
Könnt ihr mir weiterhelfen?
MFG Styler2go
-
Du könntest ein verstekctes Webbrowser Control ins Form einfügen und die URL in den Webbroeser laden.
Anschliessend kannst Du die Elemente auslesen:
Code :1 2 3 4 5
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) If (pDisp Is WebBrowser1.object) Then MsgBox(WebBrowser1.Document.All("title").innerHTML) End If End SubInvent- IT-Services - www.invent-it.de
-Consulting& Konzeption
-Anwendungs- und Webentwicklung
-Hosting & Services
Profil Lexware-Module
-
Das schon, nur das mit dem Titel ist ja nur ein beispiel.
Aber ich werde deinen Tipp gründlich Testen.
Vielen dank!
MFG Styler2go
-
So konnte ich es leider nicht auslesen...
-
21.01.09 23:29 #5
- Registriert seit
- Oct 2007
- Beiträge
- 325
Wenn du den Quelltext schon in einen String gespeichert hast, kannst du es mit RegEx lösen:
Code vbnet:1
Dim Titel As String = System.Text.RegularExpressions.RegEx.Match(Quelltext, "<title>(.*?)</title>").Groups(1).Value
Grüße
-
Ich danke dir vielmals!
Damit fuktzionert der Titel nun.
Nur leider kann ich keine, durch id's bestimmte, div-tags auslesen.
Beispiel:
Auf einer Homepage sind 2 div-tags. der eine hat die ID "test1", der andere die ID "test2" also:
Code :1 2 3
<title>Willkommen!</title> <div id="test1" style="width: 100px; right: 20%; float: left;">Test1</div> <div id="test2" style="width: 100px; right: 20%; float: right;">Test2</div>
Änder ich den Code nun aber in
zeigt er mir nichts an.Code :1
Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"" (.*?)</div>").Groups(2).Value
Wisst ihr wie ich nun immer nur ein div Tag auslese?
Eine testseite habe ich hier gehostet: KlickGeändert von styler2go (23.01.09 um 16:06 Uhr) Grund: Projekt entfernt, da unnötig.
-
22.01.09 20:44 #7
- Registriert seit
- Oct 2007
- Beiträge
- 325
Probiers mal mit
Code vbnet:1
Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"" (.*?)</div>").Groups(1).Value
-
Hmmm... nun zeigt er mir leider noch folgendes an:
Code :1
style="width: 100px; right: 20%; float: right;">
Kann man das auch noch entfernen lassen?
Habe schon ein paar Sachen versucht, aber er hat mir dann immer entweder nichts oder einen Fehler angezeigt.
MFG Styler2go
-
22.01.09 23:18 #9
- Registriert seit
- Oct 2007
- Beiträge
- 325
Was möchtest du denn angezeigt bekommen? Nur den Inhalt?
Dann so:
Code vbnet:1
Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test1"".*?>(.*?)</div>").Groups(1).Value
Hattest den tag nicht geschlossen.
-
Seltsam...
Ich verstehe das einfach nicht...
Wenn ich das über meine Testseite mit gerade einmal 2 div's mache, geht alles bestens.
Sobald ich aber eine Seite mit mehr div-tags gehe (zbs. youtube, google) zeigt er mir einfach nichts an.
Hier nochmal der gesamte Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
If Not TextBox1.Text.StartsWith("http://") Then MsgBox("No Valid URL") Else My.Computer.Network.DownloadFile(TextBox1.Text, My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") Dim Dat = File.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") File.Delete(My.Computer.FileSystem.SpecialDirectories.Temp & "/tempor") RichTextBox1.Text = Dat.Replace("<br />", vbcr) Dim Titel As String = System.Text.RegularExpressions.Regex.Match(Dat, "<title>(.*?)</title>").Groups(1).Value Dim inhalt As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""" & TextBox2.Text & """.*?>(.*?)</div>").Groups(1).Value.Replace("<br />", vbCr) Dim inhalt2 As String = System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""test2"".*?>(.*?)</div>").Groups(1).Value.Replace("<br />", vbCr) Me.Text = Titel RichTextBox1.Text = inhalt & vbCr & "---------" & vbCr & inhalt2 End If
Wisst ihr woran das liegen könnte
Ich danke für jede Hilfe schonmal!
-
23.01.09 13:53 #11
- Registriert seit
- Oct 2007
- Beiträge
- 325
An deinem Code scheint nichts falsch zu sein, nur musst du drauf achten, dass auch ein Div mit der entsprechenden Id im Quelltext vorhanden ist.
Ich denke nicht, dass google ein Div mit der Id "test2" hat.
Schau mal, ob es daran liegt.
-
Nein, also es ist folgendes:
Die div-id des titels eines Videos auf Youtube heisst:
Nun, wenn ich das als ID eingebe,watch-vid-title
(Variable inhalt2 & test2 einfach ignorieren das ist nicht das relevante, relevenat ist inhalt) bleibt der div tag einfach leer.
Ich werde das Mal an einem Bild zeigen (Anhang)
Hoffe ihr wisst was ich meine und könnt mir weiterhelfen...Geändert von styler2go (23.01.09 um 15:51 Uhr) Grund: Falsche Angaben
-
23.01.09 16:23 #13
- Registriert seit
- Oct 2007
- Beiträge
- 325
Achso, ich wusste nicht, dass es sich um ein Div von mehreren Zeilen handelt.
Wenn das so ist, dann übergib dem Optionen-Parameter der Match-Methode (genauer Name ist mir gerade entfallen) folgendes:
Code :1
RegexOptions.SingleLine
Also:
Code vbnet:1
System.Text.RegularExpressions.Regex.Match(Dat, "<div id=""" & TextBox2.Text & """.*?>(.*?)</div>", RegexOptions.SingleLine).Groups(1).Value.Replace("<br />", vbCr)
-
Hehe ich danke euch viemals! Alles t...
Hat jemand vielleicht noch eine Idee wie man sämtliche html Tags (<b>,</b>,<img>,<table> etc.) aus einem string entfernt?
Ich habe so Ideen wie:
Aber das will leider nicht so richtig.Code :1
Dim edit As String = inhalt.Replace("<*.*>", "")
MFG Styler2go!
//EDIT\\
Hat sich erledigt, ich habe es hinbekommen!
Für alle hier noch die Lösung:
Regex.Replace(inhalt, "<.*?>", "")
Danke an alle die mir geholfen haben.Geändert von styler2go (23.01.09 um 19:31 Uhr)
Ähnliche Themen
-
PHP - Bestimmte Daten aus MySQL sichtbar
Von Firstblu im Forum PHPAntworten: 4Letzter Beitrag: 08.01.10, 20:37 -
Nur bestimmte Daten aus MySQL zählen!
Von Boostergermany im Forum PHPAntworten: 4Letzter Beitrag: 27.10.09, 23:59 -
Bestimmte Daten von einer Homepage auslesen
Von Memfis im Forum PHPAntworten: 4Letzter Beitrag: 29.07.05, 10:23 -
Mit PHP bestimmte Daten aus SQL auslesen
Von fuschel im Forum PHPAntworten: 12Letzter Beitrag: 06.02.05, 16:59 -
Nur bestimmte Daten anzeigen
Von Soccertipp im Forum PHPAntworten: 1Letzter Beitrag: 18.08.02, 03:36





Zitieren
Login





