Paquete de agilidad HTML - Filtrar resultados de valor de Href

c# html-agility-pack web-scraping

Pregunta

Estoy trabajando en un raspador web. El siguiente texto muestra los resultados del código dado al final de esta pregunta, que obtiene los valores de todos los hrefs de una página.

Solo quiero obtener valores que contengan docid=

index.php? pageid = a45475a11ec72b843d74959b60fd7bd64556e8988583f

#

resumen_de_documentos.php

index.php? pageid = a45475a11ec72b843d74959b60fd7bd64579b861c1d7b

#

index.php? pageid = a45475a11ec72b843d74959b60fd7bd64579e0509c7f0 & apform = judiciary

decisions.php? doctype = Decisiones / Resoluciones firmadas & docid = 1263778435388003271 # sam

decisions.php? doctype = Decisiones / Resoluciones firmadas & docid = 12637789021669321156 # sam

? doctype = Decisiones / Resoluciones firmadas y año = 1986 y mes = Enero # cabeza

? doctype = Decisiones / Resoluciones firmadas y año = 1986 y mes = Febrero # cabeza

Aquí está el código:

        string url = urlTextBox.Text;
        string sourceCode = Extractor.getSourceCode(url);

        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(sourceCode);
        List<string> links = new List<string>();

        if (links != null)
        {
            foreach (HtmlAgilityPack.HtmlNode nd in doc.DocumentNode.SelectNodes("//a[@href]"))
            {
                links.Add(nd.Attributes["href"].Value);
            }
        }
        else
        {
            MessageBox.Show("No Links Found");
        }

        if (links != null)
        {
            foreach (string str in links)
            {
                richTextBox9.Text += str + "\n";
            }
        }
        else
        {
            MessageBox.Show("No Link Values Found");
        }

¿Cómo puedo hacer esto?

Respuesta aceptada

¿Por qué no simplemente reemplazar esto?

links.Add(nd.Attributes["href"].Value);

con este:

if (nd.Attributes["href"].Value.Contains("docid="))
    links.Add(nd.Attributes["href"].Value);


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é