我应该如何在CsQuery中获取绝对URL?

时间:2014-03-30 20:46:02

标签: c# jquery csquery

我试图在维基百科页面上获取每个锚标记的绝对URI。我认为.href属性应该给出绝对URI,但是当我在CsQuery中尝试它时,我发现它仍然给了我相对的URI。我该如何获得绝对URI?

    static void Main(string[] args)
    {
        string url = "https://en.wikipedia.org/wiki/Barack_Obama";
        var dom = CQ.CreateFromUrl(url);
        var selected = dom["div#mw-content-text a"];
        foreach (var a in selected)
            Console.WriteLine(a["href"]);
    }

1 个答案:

答案 0 :(得分:3)

CsQuery向您显示HTML页面中存在的任何内容......

你可以这样做:

 string domain = "https://en.wikipedia.org";

 var dom = CQ.CreateFromUrl(url);

 List<string> urls = new List<string>();

 dom["a[href]"].Each(dom=>{
    string url = dom.GetAttribute("href");
    if(!url.StartsWith("https"))
       url = domain + url;

    urls.Add(url);
 });

});

相关问题