c# - 使用C#从网页获取链接

标签 c# visual-studio

我正在尝试抓取文章链接的网页。

这是我的代码:

static void Main(string[] args)
{
    WebClient web = new WebClient();
    string html = web.DownloadString("http://www.dailymirror.lk");
    MatchCollection m1 = Regex.Matches(html, @"<a href=""(.+?)""/s*class=""panel-heading"">",RegexOptions.Singleline);

    foreach(Match m in m1)
    {
        Console.WriteLine(m.Groups[1].Value);
    }
}

我在页面中关注的 html 标记是这样的:

<a href="http://www.dailymirror.lk/99833/ravi-s-budget-blues" class="panel-heading">

但是,我的代码无法检索链接,无论如何我可以修改我的代码吗?

最佳答案

如上面的评论所述,使用正则表达式解析 html 通常不是一个好主意。

一种方法是使用 HTML Agility Pack:

https://htmlagilitypack.codeplex.com/

HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load("http://www.mywebsite.com");
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a[@href]"))
{
    // do something with link here
}

关于c# - 使用C#从网页获取链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338403/

相关文章:

c# - 如何垂直添加单元格

c# - 你如何在 dotnet core 中为 Nunit 测试设置可并行化属性?

visual-studio - 是否有工具或加载项来跟踪 Visual Studio 2010 中的调试器使用情况?

c# - 如何区分完全不同的 Windows 窗体应用程序运行的多个同名进程?

C#,如何防止用户更改文件夹权限?

c# - Dictionary<TKey, TValue> 是否比 List<T> 上的 LINQ 更快?

c# - 引用类时 NHibernate 映射问题(延迟加载问题?)

visual-studio - Visual Studio 无法打开网站错误

c# - 如何防止 Visual Studio 2015 的调试器评估具有副作用的静态属性?

c++ - VC++中的一些错误