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

c#查找字符串并提取href

要正确执行此操作,必须解析此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", "");
}