Google検索のすべてのリンクを取得する

c# html-agility-pack selenium

質問

私はGoogle検索からすべてのリンクを取得しようとしているが、成功していない...

Selenium + HTML Agility Packを使用しているIm

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

私はdate-hrefを抽出したいが、成功しない。

人気のある回答

あなたがすべてのリンクを見つけるこのような問題ではありません。

SelectNodesXPatha[@data-href]を追加a[@data-href]と、実際のデータURL属性を持つリンクだけが選択されます。

そうなるでしょう:

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



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ