Récupérer tous les liens sur une recherche google

c# html-agility-pack selenium

Question

J'essaie de récupérer tous les liens d'une recherche google mais sans succès ...

J'utilise 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

<a href="/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=2&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwizrv_f06TWAhXLD5AKHa4pB1AQFgg3MAE&amp;url=http%3A%2F%2Fwww.rtl.de%2Fcms%2Fdsds-2017-das-sind-die-votingergebnisse-der-14-staffel-4112962.html&amp;usg=AFQjCNF_sFs_fpNAeBAPLitsVZbShMAhiw" onmousedown="return rwt(this,'','','','2','AFQjCNF_sFs_fpNAeBAPLitsVZbShMAhiw','','0ahUKEwizrv_f06TWAhXLD5AKHa4pB1AQFgg3MAE','','',event)" data-href="http://www.rtl.de/cms/dsds-2017-das-sind-die-votingergebnisse-der-14-staffel-4112962.html">DSDS 2017: Das sind die Votingergebnisse der 14. Staffel - RTL.de</a>

Je voudrais extraire la date-href mais sans succès

Réponse populaire

Le problème n'est-il pas que de cette manière vous trouvez tous les liens.

Lorsque vous ajoutez a[@data-href] au XPath de SelectNodes vous ne sélectionnez que les liens contenant un attribut réel d'URL de données.

Donc ça deviendra:

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); 
}


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow