0

我希望我的程序仅自动从网站下载某些信息。在发现这几乎是不可能的之后,我认为程序最好只下载整个网页,然后在字符串中找到我需要的信息。

如何在特定单词之后找到某些单词/数字?我想要的数字之前的单词总是一样的。数字各不相同,这就是我的程序中需要的数字。

4

2 回答 2

3

听起来像屏幕刮擦。我推荐使用 CSQuery https://github.com/jamietre/CsQuery(或者如果你愿意,可以使用 HtmlAgilityPack)。获取源,解析为对象,遍历所有文本节点并在那里进行字符串比较。执行此操作的实际方式在源 HTML 的完成方式上存在很大差异。

可能像这个从内存中编写的未经测试的示例(CSQuery)

var dom = CQ.Create(stringWithHtml);
dom["*"].Each((i, e) =>
{
    // handle only text nodes
    if (e.NodeType == NodeType.TEXT_NODE) {
        // do your check here
    }
}
于 2013-03-05T10:25:13.723 回答
1

我已经将HTML Agility Pack用于多个应用程序,并且效果很好。也有很多选择。

这是一个可爱的 HTML 解析器,通常为此推荐。它将采用格式错误的 HTML 并将其转换为 XHTML,然后是可遍历的 DOM,例如 XML 类。因此,对于您在野外找到的代码非常有用。

于 2013-03-05T10:29:16.467 回答