如何抓取网站获取信息?

时间:2013-03-05 10:21:38

标签: c# html-parsing

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

如何在特定单词后找到某些单词/数字?我希望拥有的数字之前的单词总是相同。数字会有所不同,这是我计划中需要的数字。

2 个答案:

答案 0 :(得分:3)

听起来像是屏幕刮擦。我建议使用CSQuery https://github.com/jamietre/CsQuery(如果需要,还可以使用HtmlAgilityPack)。获取源代码,解析为对象,遍历所有文本节点并在那里进行字符串比较。这样做的实际方式因源HTML的完成方式而异。

Maby类似于从内存中编写的未经测试的示例(CSQuery)

var dom = CQ.Create(stringWithHtml);
dom["*"].Each((i, e) =>
{
    // handle only text nodes
    if (e.NodeType == NodeType.TEXT_NODE) {
        // do your check here
    }
}

答案 1 :(得分:1)

我已将HTML Agility Pack用于多个应用程序并且运行良好。还有很多选择。

这是一个可爱的HTML解析器,通常建议使用它。这将需要格式错误的HTML并按摩它到XHTML,然后是一个可遍历的DOM,比如XML类。因此,对于您在野外找到的代码非常有用。