Impressum  |   RSS  |  Forum

tsql

C# – Webseite lesen, Tags mit Regex entfernen

Mit dieser Klasse können Webseiten gelesen und HTML-Tags entfernt werden. Außerdem habe ich der Klasse zwei weitere Methoden spendiert, die erste liefert alle Email Adressen zurück. Die zweite Methode gibt den Titel der Webseite zurück. Das Filtern nach Email-Adressen und Titel erfolgt mit regulären Ausdrücken. Die Klasse bedient sich der System.IO, System.Net sowie des System.Text.RegularExpressions Namespaces.

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
using System.Net;
using System.IO;
using System.Text.RegularExpressions;
 
class Webseite
{
    string url;
    string HTML;
    string Text;
 
    public Webseite(string url)
    {
        this.url = url;
 
        //Webseite laden
        WebRequest req = WebRequest.Create(this.url);
        WebResponse resp = req.GetResponse();
        Stream stream = resp.GetResponseStream();
        StreamReader sr = new StreamReader(stream);
 
        string s = sr.ReadToEnd();
        this.HTML = s;
 
        //Tags entfernen
        Regex textreplace = new Regex("(<[^>]*>)");
        this.Text = textreplace.Replace(this.HTML, "");
 
    }
 
 
    public string getTitle()
    {
        Regex titlematch = new Regex(@"(?<=<title.*>)([\s\S]*)(?=</title>)");
        return titlematch.Match(this.HTML).ToString();
    }
 
    public string[] GetEmailAdresses()
    {
        Regex titlematch = new Regex(@"[\w\.-]{1,}@[\w\.-]{2,}\.\w{2,3}");
        MatchCollection emails = titlematch.Matches(this.HTML);
 
        string[] sEMails = new string[emails.Count];
        for (int x = 0; x < emails.Count; x++)
            sEMails[x] = emails[x].ToString();
 
        return sEMails;
    }
 
    public string getHTML()
    {
        return this.HTML;
    }
    public string getText()
    {
        return this.Text;
    }
}

Wie wird diese Klasse verwendet?

Instanz der Klasse erzeugen:

1
webseite webClass = new Webseite("http://www.tsql.de");

Ausgabe des HTML-Codes:

1
string html       = webClass.getHTML();

Alle Email Adressen auslesen:

1
string[] Emails   = webClass.GetEmailAdresses();

Titel der Webseite auslesen:

1
string title      = webClass.getTitle();

Tags: , ,