C#正则获取html中的链接地址和链接文字(不要图片链接)
想获取html中的所有链接和链接文字到数组里面,忽略图片链接但是对C#不熟悉,现在已经能远程获取网页的html到变量strPageContent。但是不知道怎么继续怎么提...
想获取html中的所有链接和链接文字到数组里面,忽略图片链接
但是对C#不熟悉,现在已经能远程获取网页的html到变量strPageContent。
但是不知道怎么继续 怎么提取html中的文本链接。
以前用过一个php写的
=========================
//取得HTML代码中所有链接
function get_all_url($code){
preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
return array('title'=>$arr[2],'url'=>$arr[1]);
} 展开
但是对C#不熟悉,现在已经能远程获取网页的html到变量strPageContent。
但是不知道怎么继续 怎么提取html中的文本链接。
以前用过一个php写的
=========================
//取得HTML代码中所有链接
function get_all_url($code){
preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);
return array('title'=>$arr[2],'url'=>$arr[1]);
} 展开
2个回答
展开全部
/// <summary>
/// 加载源码
/// </summary>
/// <param name="html">源文件</param>
private void Load(string html)
{
List<string> hrefList = new List<string>();//链接
List<string> nameList = new List<string>();//链接名称
string pattern = @"<a\s*href=(""|')(?<href>[\s\S.]*?)(""|').*?>\s*(?<name>[\s\S.]*?)</a>";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
if (m.Success)
{
//加入集合数组
hrefList.Add(m.Groups["href"].Value);
nameList.Add(m.Groups["name"].Value);
}
}
}
不知道你对C#知道多少 这个应该能看懂哈
/// 加载源码
/// </summary>
/// <param name="html">源文件</param>
private void Load(string html)
{
List<string> hrefList = new List<string>();//链接
List<string> nameList = new List<string>();//链接名称
string pattern = @"<a\s*href=(""|')(?<href>[\s\S.]*?)(""|').*?>\s*(?<name>[\s\S.]*?)</a>";
MatchCollection mc = Regex.Matches(html, pattern);
foreach (Match m in mc)
{
if (m.Success)
{
//加入集合数组
hrefList.Add(m.Groups["href"].Value);
nameList.Add(m.Groups["name"].Value);
}
}
}
不知道你对C#知道多少 这个应该能看懂哈
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string html="你获取的HTML字符串";
MatchCollection mc = Regex.Matches(str, @"<a.+>.+</a>");
foreach (Match m in mc)
{
if (m.Success)
{
//这里遍历保存 m.Value 就是数据
Console.WriteLine(m.Value);
}
}
MatchCollection mc = Regex.Matches(str, @"<a.+>.+</a>");
foreach (Match m in mc)
{
if (m.Success)
{
//这里遍历保存 m.Value 就是数据
Console.WriteLine(m.Value);
}
}
追问
太简陋了。
不能忽略图片链接。而且不能分别返回文字和链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询