You are not logged in.


Big Boss

Neuer Clubber

  • "Big Boss" started this thread

Posts: 119

Location: Kohlhausen

Occupation: Schule

  • Send private message

1

Saturday, January 6th 2007, 2:10pm

Seitenquelltext mit VB 2005 Express Edition auslesen.

Hallo,
ich möchte mit Visual Basic Express Edition 2005 einen Seitenquelltext auslesen,und im Quelltext nach etwas suchen.Wenn der Text im Quelltext vorhanden ist ,soll eine website aufgerufen werden,wenn nicht einfach garnix.
Geht das?
Danke schonmal
BIG

EDIT by Joris: Titelicon geändert weil die Frage geklärt ist.
~>Das Problem aller programmierer<~

Joris

Power Clubber

Posts: 662

Occupation: Student der Rechtswissenschaften

  • Send private message

2

Saturday, January 6th 2007, 3:14pm

Hi,

Das Prüfen ist relativ einfach. Ich habe dir mal ne Funktion geschrieben:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
 Function SearchText(ByVal GesuchterText As String, ByVal sString As String) As Boolean
        Dim Exists As Boolean

      '//Prüft, ob der gesuchte Text im String enthalten ist        
       If sString.Contains(GesuchterText) Then
      
     '//Gibt Wahr (True) aus, wenn vorhanden 
           Exists = True

        End If

        Return Exists
    End Function


In der Anwendung sieht das dann so aus:

Source code

1
2
3
4
5
6
7
Dim Quelltext as String

If SearchText("Hallo", Quelltext) = True then

'// Deine Anweisung

End If


Das Auslesen des Quelltextes ist komplizierter. Wie das geht, steht hier:

http://www.programmierforum.de/wbb2/thread.php?threadid=4678

Hoffe, dass du den Code verstanden hast und es dir helfen wird.

Viele Grüße

Joris
Nemo plus iuris transferre potest quam ipse habet.

Big Boss

Neuer Clubber

  • "Big Boss" started this thread

Posts: 119

Location: Kohlhausen

Occupation: Schule

  • Send private message

3

Sunday, January 7th 2007, 9:43am

1.
Ähmm ja also:
Den code den du geschreiben hast kapiere ich,
aber was zum Himmel ist RichTextBox?
Ich kenne nur Textbox...

2.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Imports System.Net
Imports System.IO

Public Class Form1
    Dim Quelltext As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try

            Dim oWeb As HttpWebRequest = HttpWebRequest.Create("http://cnuddels.cn.funpic.de") 'Eine

            'Anforderung wird deklariert

            Dim oResp As HttpWebResponse = oWeb.GetResponse() ' Gibt eine

            'Internetressource(aus)

            Dim St As Stream = oResp.GetResponseStream() 'Läd den Link

            Dim StR As StreamReader = New StreamReader(St) 'fängt an zu lesen



            Label1.Text = StR.ReadToEnd.ToString 'Gibt den ext in einer RichTextBox aus!

        Catch Ex As SystemException
            MessageBox.Show("Laufzeitfehler:" & Ex.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            Dim oWeb As HttpWebRequest = HttpWebRequest.Create("http://cnuddels.cn.funpic.de") 'Eine

            'Anforderung wird deklariert

            Dim oResp As HttpWebResponse = oWeb.GetResponse() ' Gibt eine

            'Internetressource(aus)

            Dim St As Stream = oResp.GetResponseStream() 'Läd den Link

            Dim StR As StreamReader = New StreamReader(St) 'fängt an zu lesen



            Label1.Text = StR.ReadToEnd.ToString 'Gibt den ext in einer RichTextBox aus!

        Catch Ex As SystemException
            MessageBox.Show("Laufzeitfehler:" & Ex.Message)
        End Try


        If SearchText("Cnuddelz", Quelltext) = True Then

            Me.close

        End If




    End Sub

    Function SearchText(ByVal Cnuddelz As String, ByVal sString As String) As Boolean
        Dim Exists As Boolean

        '//Prüft, ob der gesuchte Text im String enthalten ist        
        If sString.Contains(Cnuddelz) Then

            '//Gibt Wahr (True) aus, wenn vorhanden 
            Exists = True

        End If

        Return Exists
    End Function


End Class

Ist jetzt mein Code.
Aber da ist irgendwas falsch.
Kannst du das mal checken?
Der Fehler soll angeblich hier liegen:

Source code

1
If SearchText("Cnuddelz", Quelltext) = True Then
~>Das Problem aller programmierer<~

This post has been edited 2 times, last edit by "Big Boss" (Jan 7th 2007, 9:55am)


Joris

Power Clubber

Posts: 662

Occupation: Student der Rechtswissenschaften

  • Send private message

4

Sunday, January 7th 2007, 2:16pm

1. Eine RichTextBox ist ein Steuerelement, in dem Rtf-Formate angezeigt werden können, also ein Steuerelement,indem Texte formatiert werden können. Bei dem Code habe ich wohl einen Kommentarfehler gemacht, weil der Quellcode in einem Label ausgegeben wird.

2. Der Fehler bei deinem Code ist ein Logikfehler, also kein direkter Programmierfehler:

Du hast Quelltext als String deklariert und willst den String auf das Wort "Cnuddelz" prüfen. Tatsache ist aber, das du der Varialbe Quelltext keinen Text zugewiesen hast, der Überprüft werden kann.

Ändere

Source code

1
Label1.Text = StR.ReadToEnd.ToString 


in

Source code

1
Quelltext = StR.ReadToEnd.ToString 


Dann müsste es funktionieren. ;)

Viele Grüße

Joris
Nemo plus iuris transferre potest quam ipse habet.

Big Boss

Neuer Clubber

  • "Big Boss" started this thread

Posts: 119

Location: Kohlhausen

Occupation: Schule

  • Send private message

5

Tuesday, January 9th 2007, 4:12pm

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Imports System.Net
Imports System.IO

Public Class Form1
    Dim Quelltext As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try

            Dim oWeb As HttpWebRequest = HttpWebRequest.Create("http://cnuddels.cn.funpic.de") 'Eine

            'Anforderung wird deklariert

            Dim oResp As HttpWebResponse = oWeb.GetResponse() ' Gibt eine

            'Internetressource(aus)

            Dim St As Stream = oResp.GetResponseStream() 'Läd den Link

            Dim StR As StreamReader = New StreamReader(St) 'fängt an zu lesen



            Quelltext = StR.ReadToEnd.ToString
            'Gibt den ext in einer RichTextBox aus!

        Catch Ex As SystemException
            MessageBox.Show("Laufzeitfehler:" & Ex.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try

            Dim oWeb As HttpWebRequest = HttpWebRequest.Create("http://cnuddels.cn.funpic.de") 'Eine

            'Anforderung wird deklariert

            Dim oResp As HttpWebResponse = oWeb.GetResponse() ' Gibt eine

            'Internetressource(aus)

            Dim St As Stream = oResp.GetResponseStream() 'Läd den Link

            Dim StR As StreamReader = New StreamReader(St) 'fängt an zu lesen



            Label1.Text = StR.ReadToEnd.ToString 'Gibt den ext in einer RichTextBox aus!

        Catch Ex As SystemException
            MessageBox.Show("Laufzeitfehler:" & Ex.Message)
        End Try


        If SearchText("Cnuddelz", Quelltext) = True Then

            MsgBox("TestTest123")

        End If




    End Sub

    Function SearchText(ByVal Cnuddelz As String, ByVal sString As String) As Boolean
        Dim Exists As Boolean

        '//Prüft, ob der gesuchte Text im String enthalten ist        
        If sString.Contains(Cnuddelz) Then

            '//Gibt Wahr (True) aus, wenn vorhanden 
            Exists = True

        End If

        Return Exists
    End Function


End Class

So jetzt mein aktueller Quelltext.
Aber ich klicke mir die Finger aus,aber es funkt nicht :(
~>Das Problem aller programmierer<~

Joris

Power Clubber

Posts: 662

Occupation: Student der Rechtswissenschaften

  • Send private message

6

Tuesday, January 9th 2007, 5:02pm

Auf deiner Internetseite ist ja auch nichts drauf, wo man nachschauen könnte.

Im Übrigen frage ich mich, warum du die Website beim Start läds und dann nochmal mit einem Klick auf den Button.

Außerdem musst du bei Button_Click. auch noch was ändern:

Source code

1
 Label1.Text = StR.ReadToEnd.ToString 


in

Source code

1
 Quelltext = StR.ReadToEnd.ToString 



Viele Grüße

Joris
Nemo plus iuris transferre potest quam ipse habet.

Big Boss

Neuer Clubber

  • "Big Boss" started this thread

Posts: 119

Location: Kohlhausen

Occupation: Schule

  • Send private message

7

Friday, January 12th 2007, 2:17pm

Hallo,
leider klappt es immer noch nicht...
Code:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Imports System.Net
Imports System.IO
Public Class Form1
    Dim Quelltext As String






    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PictureBox1.Visible = True

        Try

            Dim oWeb As HttpWebRequest = HttpWebRequest.Create(TextBox1.Text) 'Eine

            'Anforderung wird deklariert

            Dim oResp As HttpWebResponse = oWeb.GetResponse() ' Gibt eine

            'Internetressource(aus)

            Dim St As Stream = oResp.GetResponseStream() 'Läd den Link

            Dim StR As StreamReader = New StreamReader(St) 'fängt an zu lesen



            Quelltext = StR.ReadToEnd.ToString
            'Gibt den ext in einer RichTextBox aus!
            Quelltext = TextBox2.Text
        Catch Ex As SystemException
            MessageBox.Show("Laufzeitfehler:" & Ex.Message)


        End Try


        If SearchText("Die Seite kann nicht angezeigt werden", Quelltext) = True Then
            TextBox2.Text = "Leider mussten wir bei einer Internet-überprüfung feststellen,das dieses Progamm nicht auf die gewünschte Seite zugreifen kann:"

        End If



        PictureBox1.Visible = False

    End Sub
    Function SearchText(ByVal Cnuddelz As String, ByVal sString As String) As Boolean
        Dim Exists As Boolean

        '//Prüft, ob der gesuchte Text im String enthalten ist        
        If sString.Contains(Cnuddelz) Then

            '//Gibt Wahr (True) aus, wenn vorhanden 
            Exists = True

        End If

        Return Exists
    End Function




End Class


Wo liegt mein Problem? ;(
~>Das Problem aller programmierer<~

Joris

Power Clubber

Posts: 662

Occupation: Student der Rechtswissenschaften

  • Send private message

8

Friday, January 12th 2007, 6:30pm

Also, erstmal habe ich die methode SearchText verbessert:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Function SearchText(ByVal GesuchterText As String, ByVal sString As String) As Boolean
        Dim Exists As Boolean
        '//Prüft, ob der gesuchte Text im String enthalten ist        
        Try
            If sString.Contains(GesuchterText) Then

                '//Gibt Wahr (True) aus, wenn vorhanden 
                Exists = True

            End If
        Catch
            Return Exists
            Exit Function
        End Try
        Return Exists
    End Function


Dann gibt es folgendes Problem:

Source code

1
Dim oWeb As HttpWebRequest = HttpWebRequest.Create(TextBox1.Text)


TextBox1.Text gibt einen String zurück, aber HttpWebRequest.Create() erfordert den Typ Uri. Das heißt TextBox1.Text muss zu System.Uri konvertiert werden. Das ist ziemlich kompliziert, aber ich werde es hoffentlich noch herausfinden!

edit: Ich habs jetzt hinbekommen, so schwer war es nicht! Ich habe die Funktion verbessert und umgeschrieben!

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    Public Function LoadSite(ByVal SiteName As String) As String
        '// Deklariere Rückgabewert
        Dim Source As String

        Try
            '// Deklariere Uri-Converter
            Dim urlco As New System.UriTypeConverter

            '// Weist url den konvertierten Wert von urlco zu
            Dim url As Uri = urlco.ConvertFromString(SiteName)

            '// Eine neue Web-Anfrage wird erstellt
            Dim oWeb As HttpWebRequest

            '// oWeb stellte eine Web-Anfrage an url
            oWeb = HttpWebRequest.Create(url) 'Eine

            '// oResp wird als Web-Antwort deklariert und wartet 
            '// auf die Antwort von der oWeb Anfrage
            Dim oResp As HttpWebResponse = oWeb.GetResponse()

            '// Dem Stream 'St' wird der Antwort-Stream von
            '// oResp zugewiesen
            Dim St As Stream = oResp.GetResponseStream()

            '// Der StreamReader 'StR wir initialisiert und 
            '// verbindet sich mit dem Stream 'St'
            Dim StR As StreamReader = New StreamReader(St)

            '// Der Stream 'St' wird vollständig ausgelesen und der
            '// Variable Source zugeordnet
            Source = StR.ReadToEnd

            '// Fängt mögliche Fehler ab
        Catch Ex As SystemException
            '// Gibt die Fehlermeldung zurück und beendet die Funktion
            Return "Laufzeitfehler:" & Ex.Message
            Exit Function
        End Try
        '// Gibt Source zurück
        Return Source
    End Function


Viele Grüße

Joris
Nemo plus iuris transferre potest quam ipse habet.

Big Boss

Neuer Clubber

  • "Big Boss" started this thread

Posts: 119

Location: Kohlhausen

Occupation: Schule

  • Send private message

9

Saturday, January 13th 2007, 12:26pm

Hallo Joris,
ein dickes Lob.
Jedoch habe ich eine Frage:
Wie du vielleicht gesehen hast,will ich den Quelltext nicht in einem Label sondern in einer Textbox ausgeben.
Möglic`h?
~>Das Problem aller programmierer<~

Joris

Power Clubber

Posts: 662

Occupation: Student der Rechtswissenschaften

  • Send private message

10

Saturday, January 13th 2007, 12:33pm

Quoted


ein dickes Lob.
Jedoch habe ich eine Frage:
Wie du vielleicht gesehen hast,will ich den Quelltext nicht in einem Label sondern in einer Textbox ausgeben.
Möglic`h?



Danke! :D

Das geht natürlich! Die Funktion liefert ja einen String als Rückgabewert, den du bequem Strings zuweisen kannst! ;)

Source code

1
TextBox2.Text = LoadSite(TextBox1.Text)


Ich würde aber eher eine RichTextBox nehmen! ;)

Viele Grüße

Joris
Nemo plus iuris transferre potest quam ipse habet.

Elnachos

Neuer Clubber

Posts: 160

Location: Germany

Occupation: Schüler

  • Send private message

11

Thursday, July 12th 2007, 11:45pm

Hi,
interessanter Thread XD...

Ich hab mal eine Frage:
Ist es möglich, einen bestimmten berreich zwischen 2 gesuchten Worten auszugeben?

Also:
Ich habe den Quelltext der Website:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>TITEL...</title>
<style></style>
</head>
<body bgcolor=#ffffff text=#000000 link=#0000cc>

INHALT INHALT Usw...

</body>
</html>


Also ich möchte jetzt den Berreich zwischen <head> und </head> in einem Label angezeigt bekommen (Ohne <head> und </head>).

Das Ergebnis wäre dann:

Quoted

<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>TITEL...</title>
<style></style>

Auf der Form.

Ich bekomme es noch nichtmal hin, das überhaupt iergendwas angezeigt wird...
Hoffe, ihr wisst mehr..
Gruß Alex
Chuck Norris kann bei Monopoly sofort Hotels bauen.

12

Friday, July 13th 2007, 9:23am

Wenn der HTML-Code der Website wohlgeformt ist benutz doch die XML-Klassen von .NET...
Das ist eine schwere Aufgabe. Man braucht dafür imaginäre Zahlen, wie elfzehn...

Elnachos

Neuer Clubber

Posts: 160

Location: Germany

Occupation: Schüler

  • Send private message

13

Friday, July 13th 2007, 3:19pm

Hört sich gut an...
Nur, wie?
Chuck Norris kann bei Monopoly sofort Hotels bauen.

14

Friday, July 13th 2007, 3:28pm

Erstelle ein Objekt der Klasse XmlDocument aus dem System.Xml-Namespace und lade mit der Methode "loadXml" den aus der Website ausgelesenen HTML-Code. Falls der HTML-Code nicht wohlgeformt ist wird dabei eine Exception geworfen.
Falls es geklappt hat kannst du mit xmlDocument.DocumentElement.SelectSingleNode("head") einen Knoten auswählen und entweder den InnerText oder InnerXml weiter verwenden (in deinem Fall InnerXml)

(Ohne Gewähr, hab das eben so aus dem Kopf getippt...)
Das ist eine schwere Aufgabe. Man braucht dafür imaginäre Zahlen, wie elfzehn...

Elnachos

Neuer Clubber

Posts: 160

Location: Germany

Occupation: Schüler

  • Send private message

15

Tuesday, July 17th 2007, 6:16pm

Hi, bin schon an der Beschreibung gescheitert... :(
Gibts nen einfacheren Weg??? Bzw. CodeSnippets oder so?

Gruß Alex
Chuck Norris kann bei Monopoly sofort Hotels bauen.

16

Thursday, September 30th 2010, 2:40pm

Ja

ja, es gibt eine einfachere lösung:
wir laden die seite herunter und lesen sie dann aus:

Source code

1
2
3
4
5
6
7
8
9
10
11
 Private Sub Quelltext_Auslesen()
 Try
 My.Computer.Network.DownloadFile(TextBox1.Text, My.Computer.FileSystem.SpecialDirectories.Desktop & "\File.html")
 TextBox2.Text = My.Computer.FileSystem.ReadAllText(My.Computer.FileSystem.SpecialDirectories.Desktop & "\File.html")
 Catch ex As Exception
 MsgBox(ex.Message)
 End Try
 If My.Computer.FileSystem.FileExists(My.Computer.FileSystem.SpecialDirectories.Desktop & "\File.html") Then
 My.Computer.FileSystem.DeleteFile(My.Computer.FileSystem.SpecialDirectories.Desktop & "\File.html")
 End If
 End Sub
VERTRAUE COMPUTERN
NUR SO WEIT,
WIE DU SIE
WERFEN
KANNST!

Social bookmarks

Rate this thread