1

我正在尝试获取维基百科页面上每个锚标记的绝对 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"]);
    }
4

1 回答 1

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

});

于 2014-03-31T14:37:49.937 回答