日期:2014-05-17  浏览次数:21276 次

C#抓取网页中含有特定字符串的链接
如题

如腾讯NBA页面http://sports.qq.com/nba/
我要获取该页面所有含有“/a/201301”的链接地址,存储到c:/sport_url.txt

请问如何实现

------解决方案--------------------
用正则表达式

------解决方案--------------------
引用:
引用:用正则表达式
正则得写死吧?
我要想实现的是给用户一个text输入框,用户可以自定义这个字符串,然后爬取含有此字符串的所有链接。

拼接正则表达式
------解决方案--------------------
  string url = "http://sports.qq.com/nba/";
            string html = GetHtml(url, Encoding.GetEncoding("gb2312"));
            string str = "/a/201301";
            string pattern = @"(?is)(?<=<a[^>]*?href=[""'])[^""']*?" + str + @"[^""']*[""'](?=[^>]*>)";
            var ary = Regex.Matches(html, pattern).OfType<Match>().Select(t => t.Value).ToArray();
           
------解决方案--------------------
还是正则比较方便
------解决方案--------------------
先匹配出所有连接地址,然后IndexOf,如果用户输入的有些字符不太规范的话,拼接正则有可能会出现错误的表达式额~
------解决方案--------------------
应该用正则表达式