C#获取页面中的链接问题

如何用C#获取页面上的链接?

有一个网页(网址:www.aaa.com),有几个链接:
1: /a.html
2: http://www.bbb.com/index.html
3: www.ccc.com
4: www.ddd.com/default.htm
5: www.eee.com/search.asp?q=abc

请将这些地址转变成绝对链接:
1: http://www.aaa.com/a.htm
2: http://www.bbb.com/index.html
3: http://www.ccc.com
3: http://www.ddd.com/default.htm
5: http://www.eee.com/search.asp?q=abc

获取这些链接的文件类型(扩展名):
1: htm
2: html
3: "" (默认)
4: htm
5: asp
※ 要代码(代码简单,高效,占用内存少,处理速度快) ※

我用Path.GetExtension方法处理链接5时得到的是asp?q=abc

第1个回答  2006-11-23
读取页面HTML内容,然后存入string中进行分析就OK了,利用string类的方法你可以解决问题,还有一个办法就是你读取到目标页面之后,在你的本地生成一个页面,在页面插入script代码,利用script代码中的document对象来获取你需要的链接地址。不过在分析文件后缀名的时候还是要用到字符串处理的
第2个回答  2006-11-23
偶刚写了一个方法,是把页面中所有可能产生链接的相对地址改成绝对地址,c#写的,不知楼主感兴趣否。

修正网页内容中的相对地址 CorrentUrl(string Url,string content)
//处理可能包含地址的属性,src,background,href,action

用了大量的字符处理,没发出来,是因为楼主说:
代码简单,高效,占用内存少,处理速度快
偶这点不敢保证,不过处理不是很大量的网页内容,速度应该是没问题,因为这个已经测试过并在使用了。本回答被提问者采纳
第3个回答  2006-11-24
string url1="http://www.eee.com/search.asp?q=abc";
System.Web.HttpRequest req = new System.Web.HttpRequest("",url1,"abc");
Console.WriteLine( req.Path);
Console.WriteLine( req.RawUrl);
Console.WriteLine( req.Url);
第4个回答  2006-11-24
----c sharp code------
Uri dd = new Uri("http://www.sina.com.cn/a.htm?s=121");
string url1 = string.Format("http://{0}/b.htm", dd.Authority);
----end c sharp code------
第5个回答  2006-11-23
上网查吧

C#获取页面中的链接问题
读取页面HTML内容,然后存入string中进行分析就OK了,利用string类的方法你可以解决问题,还有一个办法就是你读取到目标页面之后,在你的本地生成一个页面,在页面插入script代码,利用script代码中的document对象来获取你需要的链接地址。不过在分析文件后缀名的时候还是要用到字符串处理的 ...

如何抓取网页数据、分析并且去除Html标签(C#)
\/\/ 将接收到的数据增加到响应字符串中 strResponse += Encoding.ASCII.GetString(RecvBuffer, 0, nBytes); strResponse即是保存数据的字符串,此处用系统自带的System.Text.Encoding的方法转化 RecvBuffer,GetString的第一个参数RecvBuffer就是我们的原始数据,即包含需要解码的字节序列的字节数组;第二个...

用C#如何做一个检测网站的URL是否连接正常的小工具,有下载地址更好_百...
先获取到页面上所有的超链接(c#获取页面源代码,正则获取超链接),然后再根据超链接去获取源代码,获取成功则超链接有效,否则失效。

C#怎样获取百度搜索结果中所有链接地址
首先百度搜索的页面是<!doctype html>的,这意味着这是一个符合html5标准的页面,因为并不是xhtml所以我们不能直接把他当做xml来解析,只好使用dom解析,应该有三方库一类的东西,我就说下思路吧。下面是百度搜索中一条结果的源码

C#webclient 在下载页面时候如果网页无法连接的怎么处理
抓异常,然后重试。简单版 Int count=0;Int max=5;Bool success=false;While(!success && count<max){ Try { \/\/ webclient download balabala Sucess=true;} Catch { Count++;} }

C#控制台应用程序如何爬取网页超链接的源代码
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http:\/\/localhost:5983\/Default.aspx");request.Method = "POST";using (WebResponse response = request.GetResponse()){using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)){string message =...

C# 测试连接SQL数据库 用的 SqlConnection conn = new SqlConnection...
1.如果在页面CS代码上,可以这样 SqlConnection conn = new SqlConnection(this.textbox的id.Text.trim());2.假如是简单三层,这个SqlConnection conn = new SqlConnection()语句 要放在DAL层了,这样的话,要建立BLL层,要写函数a(string textboxtext)从页面接收this.textbox的id.Text.trim()的值...

C#用webkitborwser制作浏览器,可是当点击页面某些链接时,它并不会...
一步,在页面中body的oncontextmenu="return false;"二步,设置webkitbrowser1.UseCustomContextMenu=true;webkitbrowser1.UseDefaultContextMenu=false;三步,添加自己的上下文菜单contextMenuStrip1,设置webkitbrwser1.ContextMenuStrip=contextMenuStrip1;(可选)。2、解决不刷新问题 在自己的上下文子菜单加...

C#如何链接到我的网页,我想通过点击控件LinkLabel进入我电脑里有的...
把你的静态页面放在你发布的网站文件夹下面或者直接把你的静态页面添加到你的项目里面,然后设置LinkButton的连接属性连接的你的静态页面就可以了 似乎没有LinkLabel这个控件只有LinkButton这个控件啊,我从没使用过LinkLabel

C#本机如调试正常,上传后访问页面有错误
<configuration> <system.web> <customErrors \/> <\/system.web> <\/configuration> 这个代码应该是里面本来就有的 不需要加 只需要改下OFF就可以了 你看下是不是有重复代码在web.config里面了?

相似回答
大家正在搜