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