首页 新闻 会员 周边

C#提取HTML中的所有链接

0
悬赏园豆:10 [已解决问题] 解决于 2009-02-03 10:58

如此获得一个页面的HTML的所有代码了之后,有什么算法可以提取出来所有的HREF链接或者是GIF等二进制的图片呢?

我不打算使用正则。

Code
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
response
= request.GetResponse();
stream
= response.GetResponseStream();

 

就当前的页面举例:

至少要得到http://www.cnblogs.com/ad.aspx诸如此类的链接。

Code
<div id="footer">
<div id="foot">
<a href="http://www.cnblogs.com/AboutUS.aspx">关于博客园</a>&nbsp&nbsp;<a href="http://www.cnblogs.com/ContactUs.aspx">联系我们</a>&nbsp;&nbsp;<a href="http://www.cnblogs.com/ad.aspx">广告服务</a>&nbsp;&nbsp;&copy; 2004-2009 <a href="http://www.cnblogs.com">博客园</a><span style="display:none"><script language="javascript" src="http://count45.51yes.com/click.aspx?id=458492239&logo=1"></script></span> 合作伙伴: <a href="http://www.hjenglish.com" target="_blank">沪江网</a>
</div>

</div>
</div>
AlexLiu的主页 AlexLiu | 初学一级 | 园豆:145
提问于:2009-01-21 14:42
< >
分享
最佳答案
0

htmlparser.net

使用方法

http://www.cnblogs.com/RicCC/archive/2007/06/20/HtmlParser-NET-Examples.html

下载地址

http://www.netomatix.com/products/documentmanagement/HtmlParserDownload.aspx

eaglet | 专家六级 |园豆:17139 | 2009-01-21 16:18
其他回答(3)
0

用 xml

html-> xhtml

这个 可以去 codeproject 找找,有一些html转换为xhtml的代码片段或者是小库

然后  用xmldocument 载入, 在里面查找所有的"A"Node

还有

用正则表达式,  <a xx href="(xx)" xx>(xx)</a> 这样获得也可以.

 

同样页面内的gif等也可以获取.  唔,  要是css里的gif的话 要麻烦一些.

Astral.Road | 园豆:345 (菜鸟二级) | 2009-01-21 15:02
0

用正则表达式捕捉呀 .net 的 Regex 很强大地

Such Cloud | 园豆:130 (初学一级) | 2009-01-21 17:09
0

拿取地址的来举例:

Code

实际的情况可能会有所差异,比如连接里包含target或其它属性,要看你的目标网页的具体格式,你没有给出,所以只好给个通用的。
可以利用多个正则进行匹配、替换不需要的内容来获取你想要的信息。
如果不用正则的话,反复查找定位判断字符(IndexOf,SubString,Contans...)来取信息的话,一是开发效率太低,二是准确率不高,三是容易出错。
风海迷沙 | 园豆:4453 (老鸟四级) | 2009-01-24 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册