C# 正则表达式获取 HTML 标记内容
本文关键字:HTML 正则表达式 获取 | 更新日期: 2023-09-27 18:30:35
这是我的html:
<div class="bla">
<div>
bla bla
</div>
<div>
bla bla 2
</div>
<p></p>
</div>
我想使用 c# 正则表达式获取class="bla"
内容。我试过:
MatchCollection postCollection = Regex.Matches(html, "<div class='"bla'".*?>(.*?)<''/div>");
但它只给了我这部分内容:
<div class="bla">
<div>
bla bla
</div>
一旦第一个div关闭。
使用 DOM 解析器,正则表达式不适合这个: https://www.nuget.org/packages/HtmlAgilityPack
但是正如您提到的,页面是在运行时使用 JavaScript 生成的,这不是一个合适的选择。您将需要一个类似浏览器的组件:例如Selenium
在这里你可以找到一些例子:http://scraping.pro/example-of-scraping-with-selenium-webdriver-in-csharp/
正如其他人提到的,你不应该在这种情况下使用正则表达式。但是,这是可能的。
这是我这样做的尝试:
(<div class="bla".*>(['w's<>'/]*)<'/div>)
这肯定需要更多的工作,并且可能有问题,但可能会引导您朝着正确的方向前进。
正则表达式演示:这里