一个更好的网络抓取解决方案

本文关键字:网络 抓取 解决方案 更好 一个 | 更新日期: 2023-09-27 18:00:38

目标:
从网站上找到句子"来自今天的专题文章"http://en.wikipedia.org/wiki/Main_Page"使用带有C#代码的网页。

问题:
您可以在字符串值中检索网站的源代码。我相信你可以通过循环使用子字符串来定位句子"来自今天的专题文章"。我觉得这是一种效率低下的方法。

有没有更好的解决方案可以从字符串输入中找到句子"From today’s featured article"?

信息:
*我正在Visual Studio 2013社区中使用C#代码
*soucecode无法正常工作。前三排正在工作。

WebClient w = new WebClient();
string s = w.DownloadString("http://en.wikipedia.org/wiki/Main_Page");
string svar = RegexUtil.MatchKey(input);


static class RegexUtil
{
    static Regex _regex = new Regex(@"$ddd$");
    /// <summary>
    /// This returns the key that is matched within the input.
    /// </summary>
    static public string MatchKey(string input)
    {
        //Match match = Regex.Match(input, @"From today's featured article", RegexOptions.IgnoreCase);
        Match match = _regex.Match(input);
        //  Match match = regex.Match("Dot 55 Perls");

        if (match.Success)
        {
            return match.Groups[1].Value;
        }
        else
        {
            return null;
        }
    }
}

一个更好的网络抓取解决方案

如果你想找到该字符串的出现,你需要做的就是:

int pos = html.IndexOf("From today's featured article");

但是,您应该注意,这可能会在引号或标记中找到字符串,而不仅仅是从可见文本中找到。

为了只搜索可见的文本,您需要解析HTML以删除所有标记,然后搜索其间的文本。