Cómo extraer etiquetas meta de una serie de URL sin descargar todo el código html en c #

asp.net c# html html-agility-pack metadata

Pregunta

Quiero extraer el título, la descripción y las palabras clave de una serie de URL.
Tengo este codigo

 WebClient x = new WebClient();
 string  pageSource = (x.DownloadString(url));     
 query.title = Regex.Match(pageSource, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", RegexOptions.IgnoreCase).Groups["Title"].Value;

Pero no quiero descargar la página completa porque consume mucho tiempo para una serie de URL. ¿Hay alguna forma de obtener esta información sin descargar toda la página?
Debo mencionar que obtengo estas URL en la página de resultados de búsqueda de google al enviar una consulta de envío a google.

Respuesta popular

Puede solicitar y descargar un resultado parcial utilizando HttpClient especificando el encabezado del rango. Puede definir la longitud del búfer que desea descargar y leer:

    static void Main()
    {
        Test().GetAwaiter().GetResult();
    }

    private static async Task Test()
    {
        const string url = "http://google.com";
        const int bytesToRead = 2000;

        using (var httpclient = new HttpClient())
        {
            httpclient.DefaultRequestHeaders.Range = new RangeHeaderValue(0, bytesToRead);

            var response = await httpclient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);

            using (var stream = await response.Content.ReadAsStreamAsync())
            {
                var buffer = new byte[bytesToRead];
                stream.Read(buffer, 0, buffer.Length);

                var partialHtml = Encoding.UTF8.GetString(buffer);
                //extract required info from partial html
            }
        }
    }

Se podría lograr el mismo resultado utilizando WebClient "antiguo"



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué