2013-03-05 80 views
0

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

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

+0

可否请您发表示例文字? – BergListe 2013-03-05 10:23:54

+0

首先您需要确保该单词是唯一的,然后您可以使用http://msdn.microsoft.com/de-de/library/system.text.regularexpressions.regex(v=vs.80).aspx – Vogel612 2013-03-05 10:24:09

+0

为了清晰起见,我编辑了您的问题,并使用社区更为熟悉的词组。如果我的任何更改不正确,请进行编辑以澄清您的问题。 – 2013-03-05 10:24:18

回答

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 
    } 
} 
1

我用HTML Agility Pack多个应用程序和它工作得很好。很多选项也是如此。

这是一个可爱的HTML解析器,通常为此推荐。它将采用格式不正确的HTML并将其按摩到XHTML中,然后像XML类一样穿越DOM。所以,对于你在野外找到的代码非常有用。