这是获取链接的代码:
private List<string> getLinks(HtmlAgilityPack.HtmlDocument document)
{
List<string> mainLinks = new List<string>();
var linkNodes = document.DocumentNode.SelectNodes("//a[@href]");
if (linkNodes != null)
{
foreach (HtmlNode link in linkNodes)
{
var href = link.Attributes["href"].Value;
mainLinks.Add(href);
}
}
return mainLinks;
}
有时我得到的链接开始像“/”或:
“/videos?feature=mh”或“//www.youtube.com/my_videos_upload”
我不确定“/”是指正确的网站还是以“/videoes?...或“//www.youtube...
每次我需要获取以 http 或 https 开头的网站的链接,也许只是 www 也算作正确的网站。问题是我将什么定义为正确的站点地址和链接,什么不是?
我确定我的 getLinks 函数不好,代码不是正确的方式。
这就是我将链接添加到列表的方式:
private List<string> test(string url, int levels , DoWorkEventArgs eve)
{
HtmlAgilityPack.HtmlDocument doc;
HtmlWeb hw = new HtmlWeb();
List<string> webSites;// = new List<string>();
List<string> csFiles = new List<string>();
try
{
doc = hw.Load(url);
webSites = getLinks(doc);
webSites 是一个列表 几次后,我在列表站点中看到“/”或如上“//videoes... 或“//www...。