网页抓取[截取字段][正则表达式方法]C#写法解决

本文介绍了一种从网页中精确抓取所需内容的方法,通过三种不同的解决方案实现:使用符号保留、正则表达式匹配和去除HTML标签等技术手段,帮助读者有效定位并获取指定的数据片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

抓取了一个网页,现在要截取字段
" <--开始--> 内容 <--结束--> "
public string HttpString_Filtrate(string Http_String, string Begin_String, string End_String)
{
int Begin_Int = Http_String.IndexOf(Begin_String);
int End_Int = Http_String.IndexOf(End_String);
string ReString = Http_String.Substring(End_Int,Begin_Int);

return ReString;
}

现在要得到内容,我写这个好象不行。。。。。 <--开始--> 和 <--结束--> 为不固定值

解决方案一:

符号保留啊
比如: " <hr> 其它 <--开始--> 内容 <br> 内容 <--结束--> 其它 <hr> "
得到 "内容 <br> 内容 "

 

解决方案二:写匹配正则表达式

            //删除所有的html标记

public static string delHtml(string str)

{

if (str != null && str.Trim() != " ")

return Regex.Replace(str, " <[^> ]+> ", " ");

return str;

}

// 删除字符串中的特定标记

//isContent:是否清除内容

public static string delTag(string str, string tag, bool isContent)

{

if (tag == null || tag == " ")

{

return str;

}

if (isContent) //要求清除内容

{

return Regex.Replace(str, string.Format( " <({0})[^> ]*> ([//s//S]*?)
</////1> ", tag), " ", RegexOptions.IgnoreCase);

}

return Regex.Replace(str, string.Format(@ "( <{0}[^> ]*(> )?)|( </{0}[^> ]
*> )| ", tag), " ", RegexOptions.IgnoreCase);

}

// 删除字符串中的一组标记

//isContent:是否清除内容

public static string delTagArray(string str, string tagA, bool isContent)

{

string[] tagAa = tagA.Split( ', ');

foreach (string sr1 in tagAa) //遍历所有标记,删除

{

str = delTag(str, sr1, isContent);

}

return str;

}    

解决方案三:

 

如果End_String是:

<table width=90% border=0 align=center>
<tr> </tr>
</table>
怎么办?

用SubString个人觉得效率极低,用正则好!有其他方案欢迎指教一二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值