在c#中从页面中读取特定的文本到字符串数组

本文关键字:文本 字符串 数组 读取 | 更新日期: 2023-09-27 18:15:03

我试过这个,并寻求帮助,但我不能弄清楚。我可以得到一个页面的源,但我不需要全部,只需要一个重复的字符串。可以这样想,在不丢失任何特殊字符的情况下,只抓取页面上文章的标题并将它们按顺序添加到数组中。有人能给点启示吗?

在c#中从页面中读取特定的文本到字符串数组

您可以使用正则表达式

从字符串(例如HTML字符串)中提取所需的内容。

或者您可以使用DOM解析器,例如

Html Agility Pack

希望这对你有帮助!

你可以这样写-

var text = "12 hello 45 yes 890 bye 999";
var matches = System.Text.RegularExpressions.Regex.Matches(text,@"'d+").Cast<Match>().Select(m => m.Value).ToList();

该示例将text变量中的所有数字拉到字符串列表中。但是您可以更改正则表达式,使其更适合您的需要。

如果页面是格式良好的xml,则可以使用linq to xml,方法是将页面加载到XDocument中,然后使用XPath或其他遍历到所需元素的方法,然后将所需内容加载到正在查找的数组中(或者如果只想枚举,则直接使用enumerable)。但是,如果页面不在您的控制之下,那么这是一个脆弱的解决方案,当细微的更改可能破坏xml的良好格式时,它可能随时失效。如果是这种情况,您最好使用正则表达式。但是,无论哪种方式,页面都可能在您的命令下被更改,并且您的代码突然无法再工作了。

你能做的最好的事情是让页面的提供者公开你需要的web服务,而不是试图抓取他们的页面。