c#查找字符串并提取href
本文关键字:提取 href 串并 字符串 查找 字符 | 更新日期: 2023-09-27 18:19:13
我有一个文件,其中包含文本。我需要搜索一个字符串并提取该行上的href。
file.txt是包含基本wordpress主页的文件
最后我想要http://example.com like链接。我尝试了几种方法,比如
DateTime dateTime = DateTime.UtcNow.Date;
string stringpart = dateTime.ToString("-dd-M-yyyy");
string finalword = "candy" + stringpart;
List<List<string>> groups = new List<List<string>>();
List<string> current = null;
foreach (var line in File.ReadAllLines(@"E:/file.txt"))
{
if (line.Contains("-22-8-2014") && current == null)
current = new List<string>();
else if (line.Contains("candy") && current != null)
{
groups.Add(current);
current = null;
}
if (current != null)
current.Add(line);
}
foreach (object o in groups)
{
Console.WriteLine(o);
}
Console.ReadLine();
}
要正确执行此操作,必须解析此html文件。使用像CSquery、HTML Agility Pack或SgmlReader之类的工具。
使用CSQuery解决问题的方法:
public IEnumerable<string> ExtractLinks(string htmlFile)
{
var page = CQ.CreateFromFile(htmlFile);
return page.Select("a[href]").Select(tag => tag.GetAttribute("href"));
}
如果您决定使用htmllagilitypack,这应该很容易:
var doc = new HtmlDocument();
//load your HTML file to HtmlDocument
doc.Load("path_to_your_html.html");
//select all <a> tags containing href attribute
var links = doc.DocumentNode.SelectNodes("//a[@href]");
foreach(HtmlNode link in links)
{
//print value of href attribute
Console.WriteLine(link.GetAttributeValue("href", "");
}