Feedback

C# - Website nach (regulären) Ausdruck (z.B. Emails) durchsuchen

Veröffentlicht von am 14.11.2015
(0 Bewertungen)
Die Methode dient dazu, eine Website nach einer bestimmten Zeichenkette zu durchsuchen. Als Parameter werden die URL und der Suchstring übergeben. Der Rückgabewert ist eine ArrayList mit jeglichen gefundenen Werten.


ArrayList strings = searchWebsiteForString("http://www.example.com", "example");

// Example
// Example
// example
// example
// example


Und so sieht das aus, wenn man nach Emails sucht


ArrayList results = searchWebsiteForString("http://dotnet-snippets.de/imprint", "([^@][A-Za-z0-9-_]+)@([^\\.][A-Za-z0-9-_]+).([A-Za-z]+)");

// ;info@jan-welker.de
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

using System;
using System.Collections;
using System.IO;
using System.Net;
using System.Text.RegularExpressions;

public static ArrayList searchWebsiteForString(string url, string regex)
{
    if (url == null | regex == null)
        throw new ArgumentNullException(url);

    ArrayList result = new ArrayList();
    var webRequest = (HttpWebRequest)WebRequest.Create(url);
    using (WebResponse webResponse = webRequest.GetResponse())
    {

        using (StreamReader sr = new StreamReader(webResponse.GetResponseStream()))
        {

            string content = sr.ReadToEnd();

            Regex r = new Regex(regex, RegexOptions.IgnoreCase);

            Match match = r.Match(content);
            while (match.Success)
            {
                result.Add(match.Value);
                match = match.NextMatch();
            }
        }

    }

    return result;
}

Abgelegt unter Web, Website, Suchen, Regex, Crawler.

2 Kommentare zum Snippet

Koopakiller schrieb am 14.11.2015:
Wir sind im Jahr 2015 und haben Generika und sogar Iteratorfunktionen.

Ein String-Array oder in deinem Fall vielleicht besser ein IEnumerable<string> zurück zu geben empfände ich als am besten, da diese Lösung bei großen Seiten auch Leistungseffizienter wäre.
Jan Welker schrieb am 16.11.2015:
Super Beispiel :)
 

Logge dich ein, um hier zu kommentieren!