怎样获得网址页面中的所有链接

yx_luko 2007-04-17 09:33:29
在一个文本框中输入网址单击按钮后
把网址的当前页面所有的链接保存到
文本框中显示出来!


请高手出击!!
...全文
503 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaaa9813 2008-06-16
  • 打赏
  • 举报
回复
jie fen
lawbc 2008-06-02
  • 打赏
  • 举报
回复
学习下
aaaa9813 2008-05-28
  • 打赏
  • 举报
回复
good
fir521522 2008-05-27
  • 打赏
  • 举报
回复


收着慢慢看看
radiumhuang 2007-05-18
  • 打赏
  • 举报
回复
如果使用AxWebBrowser,那么只要调用IHTMLDocument2的links属性就可以获得整个页面的所有连接了。
yq_net 2007-05-10
  • 打赏
  • 举报
回复
yq_net@163.com
发个给我
谢谢了
jimgreat 2007-05-03
  • 打赏
  • 举报
回复
给我你的邮箱 我这有个很好的源码
yan53125 2007-05-02
  • 打赏
  • 举报
回复
mark没商量
bingchener 2007-05-02
  • 打赏
  • 举报
回复
先获取目标页面的源代码,在用正则表达式筛选!


在NET中取得网页的代码有好几种

现在我们先来说第一种

哪就是用AxWebBrowser按件,用这种方法你要先在你的项目里先

加入AxWebBrowser控件,可以从<工具箱>--<Window窗体>---

<添加/移除项>---<COM组件>---<Microsoft WEB浏览器>来添加这

个控件.用这个控件取得代码,我们要先打开一个网页然后等网页加

载完了后再取得代码。用此控件的Navigate属性我们可以让

AxWebBrowser打开一个网页,

例如:AxWebBrowser1.Navigate(http://mgxx520.blog.com.cn)哪么

此时它就会打开本人的博客了。接着我们用另一个语句:

AxWebBrowser1.Document.documentelement.InnerHTML

上面这一句就可以取得了此时AxWebBrowser1里所加打开的网页

的代码了。你只要把取得的字符串赋给一个字符串变量哪么就可以

把代码放到了你要的地方了!

哪我们现在就来说一下第二种:

这一种是用到System.Net命空间下的HttpWebRequest来取得网页源

代码方法如下:

Dim url As String=" http://mgxx520.blog.com.cn" ' 这是本人的博客

Dim httpReq As System.Net.HttpWebRequest  

Dim httpResp As System.Net.HttpWebResponse

Dim httpURL As New System.Uri(url)

httpReq = CType(WebRequest.Create(httpURL), HttpWebRequest)

httpReq.Method = "GET"

httpResp = CType(httpReq.GetResponse(), HttpWebResponse)

httpReq.KeepAlive = False ' 获取或设置一个值,该值指示是否与

Internet资源建立持久连接。

Dim reader As StreamReader = _

New StreamReader(httpResp.GetResponseStream,

System.Text.Encoding.GetEncoding("GB2312")) '用GB2312字符

Dim respHTML As String = reader.ReadToEnd() 'respHTML就是网

页源代码

第三种方式:(这种方式决对支持中文)

byte[] buf = new byte[1000000];

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.mcfsoft.com.cn");

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Stream resStream = response.GetResponseStream();

int count = resStream.Read(buf,0,buf.Length);

dim str = Encoding.Default.GetString(buf,0,count); '这里的str里的内容就是网页的内容

resStream.Close();



相比两种方法,第一种会慢一点,因为它要等到网页加载完后才能

取得代码,而第二种就不用。但跟据情况的不同这两种都会各有各

的好处。因此要用哪种方法哪就要看你的运用了
windstore 2007-04-17
  • 打赏
  • 举报
回复
我觉得应该是先把该页面读取回来,再用正则表达式匹配,然后写出。

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧