Recuperar todos los enlaces en una búsqueda de google

c# html-agility-pack selenium

Pregunta

Estoy intentando recuperar todos los enlaces de una búsqueda de google pero sin éxito ...

Estoy usando Selenium + HTML Agility Pack

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(pageSource);

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//*[@id='rso']/div/div/div[1]/div/div/h3/a"))
{
     string href = link.GetAttributeValue("data-href", string.Empty);

     list.Add(href);
}

foreach (var item in list)
{
     Console.WriteLine(item);
}

Google HTML

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(pageSource);

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//*[@id='rso']/div/div/div[1]/div/div/h3/a"))
{
     string href = link.GetAttributeValue("data-href", string.Empty);

     list.Add(href);
}

foreach (var item in list)
{
     Console.WriteLine(item);
}

Me gustaría extraer la fecha-href pero sin éxito.

Respuesta popular

No es el problema que de esta manera encuentres todos los enlaces.

Cuando agrega a[@data-href] a la XPath de SelectNodes , solo seleccionará los enlaces con un atributo de url de datos real en ellos.

Así se convertirá en:

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//*[@id='rso']/div/div/div[1]/div/div/h3/a[@data-href]")) 
{ 
    string href = link.GetAttributeValue("data-href", string.Empty); 
    list.Add(href); 
}



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é