我正在做一个小爱好项目.我已经编写了代码来获取URL,下载头并返回mime类型/内容类型.
然而,在此之前的步骤是我坚持 - 我需要检索页面上的所有网址的内容,在标签内,并在引号即
...
<link rel='shortcut icon' href="/static/favicon.ico" type="image/x-icon" />
...
Run Code Online (Sandbox Code Playgroud)
会找到favicon链接.
在.net库中是否有任何帮助,或者这是否必须是正则表达式的一个案例?
wom*_*omp 62
我会看看使用Html Agility Pack.
以下是他们的示例页面中有关如何查找页面中所有链接的示例:
HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(/* url */);
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
}
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 38
您需要使用HTML Agility Pack.
例如:
var doc = new HtmlWeb().Load(url);
var linkTags = doc.DocumentNode.Descendants("link");
var linkedPages = doc.DocumentNode.Descendants("a")
.Select(a => a.GetAttributeValue("href", null))
.Where(u => !String.IsNullOrEmpty(u));
Run Code Online (Sandbox Code Playgroud)
And*_*are 16
BCL中没有任何内置功能,但幸运的是,您可以使用HTML Agility Pack完成此任务.
至于您的具体问题,请参阅使用HtmlAgilityPack轻松从一段html中提取链接:
private List<string> ExtractAllAHrefTags(HtmlDocument htmlSnippet)
{
List<string> hrefTags = new List<string>();
foreach (HtmlNode link in htmlSnippet.DocumentNode.SelectNodes("//a[@href]"))
{
HtmlAttribute att = link.Attributes["href"];
hrefTags.Add(att.Value);
}
return hrefTags;
}
Run Code Online (Sandbox Code Playgroud)
小智 7
正则表达式怎么样?
<(a|link).*?href=(\"|')(.+?)(\"|').*?>
Run Code Online (Sandbox Code Playgroud)
用旗帜IgnoreCase
和SingleLine
请参阅systemtextregularexpressions.com regex.matches上的演示
归档时间: |
|
查看次数: |
65562 次 |
最近记录: |