我正在尝试抓取文章链接的网页。
这是我的代码:
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/