La base è questa, il namespace dei metodi WebRequest, WebResponse e della classe statica HttpWebRequest stanno in System.net.
codice:
class Program
    {
        static void Main(string[] args)
        {
            //Richiesta http
            WebRequest request = HttpWebRequest.Create("http://www.google.it");
            WebResponse response = request.GetResponse();

            //Se la risposta non è una stringa html non vado avanti
            //Questo controllo lo puoi gestire come meglio credi
            string contentType = response.Headers[HttpResponseHeader.ContentType];
            if (contentType.Contains("text/html"))
            {
                //Riversa la risposta http in uno stream
                Stream stream = response.GetResponseStream();

                //Leggo lo stream con un metodo adhoc
                string htmlString = LeggiStreamHtml(stream);

                //leggo gli indirizzi di posta elettronica e faccio partire lo spam... :)
            }
        }

        private static string LeggiStreamHtml(Stream stream)
        {
            StreamReader reader = new StreamReader(stream);

            StringBuilder sb = new StringBuilder();
            while (!reader.EndOfStream)
                    sb.Append(reader.ReadLine());

            return sb.ToString();

        }
    }