100求一问题,大家进来讨论下,up~~也有分~~~
问题描述:
我想取网页里的具体信息,比如一个网页形式的工作经历,把文件读到一个字符串里了,我想先把这个字符串里面的所有<table><tr>之类的标签,和一些不是文字的东西去了,再查找,截取,不知道这种方法可行吗?如可行,怎么才能把那些不是文字的去掉呢?正则我不大会啊...
如果有更好的办法,请问怎么实现(就从已经读出网页的字符串里弄)
谢谢大家,分肯定兑现 欢迎大家讨论
up有分哈~~
[解决办法]
最方便的就是正则了
[解决办法]
**********************************************************************************
定义一个方法,过滤<table>之类的东西.
或者
把从网页读出的字符串转换成xml文件,(有专门的类处理它的)
提取InterText就ok了吧
***********************************************************************************
[解决办法]
有一些小的开源项目专门做 基于html的词法分析的
你可以找一找 各种语言的都有
可以拿来直接用
[解决办法]
似乎都是用正则来做的,要不想想办法看看能不能转成xml
[解决办法]
文件读到一个字符串正则表达式提取
[解决办法]
对这个网页的每一个对象遍历
然后保存起来
[解决办法]
up
[解决办法]
友情UP
[解决办法]
友情UP
[解决办法]
正则
[解决办法]
自己写比较复杂 网上有现成的函数
[解决办法]
up接分
[解决办法]
友情UP
[解决办法]
UP也谢谢大家了~~
[解决办法]
这个偶不懂..........
帮你顶顶人气.....
[解决办法]
友情UP
[解决办法]
UP也谢谢大家了~~
[解决办法]
没正则用笨方法了..... 呵呵 希望大家多提出解决方案,我在这里谢过
public static string NoHTML(string Htmlstring)
{
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"<script[\s\S]+</script *>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring.Replace("<", "");
Htmlstring.Replace(">", "");
Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
[解决办法]
up
[解决办法]
up
[解决办法]
有此我面试也是这个问题,赫赫。。。up
[解决办法]
up
[解决办法]
up 接分咯!!
[解决办法]
public static string NoHTML(string Htmlstring)
{
Htmlstring = Regex.Replace(Htmlstring, @" <script[^ >]*? >.*? </script >", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@" <script[\s\S]+ </script * >", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @" <(.[^ >]*) >", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-- >", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @" <!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot ¦#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp ¦#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt ¦#60);", " <", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt ¦#62);", " >", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp ¦#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl ¦#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent ¦#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound ¦#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy ¦#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring.Replace(" <", "");
Htmlstring.Replace(" >", "");
Htmlstring.Replace("\r\n", "");
Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
这是楼上的,肯定可以.
[解决办法]
up
[解决办法]
jf
[解决办法]
学习
[解决办法]
up~~
[解决办法]
up up up up up up up up up up up ~~~~~~!!!!!
[解决办法]
21楼的应该可行吧
[解决办法]
up~~
[解决办法]
最好用正则表达式来做!顺便顶一下!CSDN的高手太多了!让我学了不少知识!太高兴了!呵呵!LZ加油!
[解决办法]
21楼的方法是比较可行,但是楼主要细心点了,不然容易漏啊
楼主是想保留的内容是中文还是英文的啊?
[解决办法]
学习 UP
[解决办法]
呵呵...如果知道网页的结构..那么就用正则转换为xml
不如果不知道结构.就用正则转为string....
正则很简单..网上找一下就有...
[解决办法]
up
jf
[解决办法]
唉,自己没分了
[解决办法]
学习下
[解决办法]
重UP,有新的收获!!
[解决办法]
up
[解决办法]
进来学习!
[解决办法]
LZ的思路是不可行嘀
为什么?很简单,因为等你获取了文字,而没有<tag>这个标签
那么你怎么区分这一堆文字里什么才是你想要的??
所以可以这样
根据某个特定的<tag></tag>这样的对,来获取这中间的内容,这样正则是可以很方便的实现
但是还有可能这总一堆string里有多个<tag></tag>这样的标签对的时候
如果是自已定义的不变页面
可以指定正则捕获的次数来获取内容,小偷,采集都是这么作的
[解决办法]
如果要取这其中文字的内容就可以的话
那么
Regex.Macth(string,"[\u4e00-\u9fa5,.,。]").value
这个就可以获取中文和,.,。这四个标点
[解决办法]
UP