c# - 需要一种不使用正则表达式来提取标题内容的方法
问题描述
我已经看到 html 敏捷包可以派上用场,但我不明白它是如何工作的。这就是我现在获取代码的方式,目前它成功地提取了标题内容,但也获取了更多不需要的内容。
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl(response);
String sourcePage = driver.PageSource;
Regex regexHeadings = new Regex("(?<=\\>)(?!\\<)(.*)(?=\\<)(?<!\\>)");
foreach (Match match in regexHeadings.Matches(sourcePage))
{
h1Keywords.Add(match.Value);
colorOutput(ConsoleColor.White, match.Value);
}
解决方案
我建议您在 XPath / CSS 选择器的帮助下使用 HtmlAgility Pack。请参阅此备忘单以获取帮助:https ://devhints.io/xpath
快速示例:
var url = "https://devhints.io/xpath";
var web = new HtmlWeb();
var doc = web.Load(url);
foreach (var heading in doc.DocumentNode.SelectNodes("//h1"))
{
Console.WriteLine(heading.InnerText);
}
推荐阅读
- java - 使用 while 循环检查和验证 Java 数组
- php - 你如何在 Symfony 4 中使用 RedisSessionHandler?损坏的文档
- java - Spring data couchbase 3.0.9 发布 - com.couchbase.client.java.error.ViewDoesNotExistException 查看人/所有人不存在
- vim - 解决vim中的合并冲突
- spring-batch - 如何支持通过环境变量将唯一的作业名称传递给 Spring Batch 作业?
- python - 调用python函数
- c# - wpf 中继器之类的项目控制
- robotframework - 哪种方式更适合机器人框架中的测试数据准备?
- tensorflow - 当我在 Tensorflow 上使用 Keras API 连接两个模型时,模型的输入张量必须来自 `tf.layers.Input`
- django - django - 当关系已经存在时添加到 M2M 关系