如何用c#实现在网页上查找功能
比如,我要在一个网页上查找所有有"答案"两个字的地方,然后点击这些链接 --------------------编程问答-------------------- 首先用WebRequest读取网页的内容然后用正则提取出所有带“答案”两字的链接
再然后用WebRequest抓取这些链接所指向的页面 --------------------编程问答-------------------- 能给出实现代码吗 --------------------编程问答-------------------- webclient,httpwebrequest
webbrower获取页面数据,再查询
HtmlElementCollection coll= doc.GetElementsByTagName("A");
for (int i = 0; i < coll.Count; i++)
{
}
--------------------编程问答-------------------- 首先获取页面,然后分析超级链接,如果超级链接中的文字包含答案就为有效数据
--------------------编程问答--------------------
//对url进行编码;url:请求的路径;enc:编码格式
private static string UrlEncode(string url, Encoding enc)
{
byte[] bs = enc.GetBytes(url); //得到字节表示的数组
StringBuilder sb = new StringBuilder(); //用于返回结果
for (int i = 0; i < bs.Length; i++)
{
if (bs[i] < 128) //asc码在128以下,直接添加
sb.Append((char)bs[i]);
else
{
//以格式化好的样式添加
sb.Append("%" + bs[i++].ToString("x").PadLeft(2, '0'));
sb.Append("%" + bs[i].ToString("x").PadLeft(2, '0'));
}
}
return sb.ToString();
}
//获取某个页面。以返回流的编码方式,接收返回的信息
private string Thief(string url)
{
string tempurl = UrlEncode(url, System.Text.Encoding.GetEncoding("gb2312")); //url
HttpWebRequest webr = (HttpWebRequest)WebRequest.Create(tempurl);
//创建请求
HttpWebResponse wb = (HttpWebResponse)webr.GetResponse();
Stream sr = wb.GetResponseStream(); //得到返回数据流
Encoding encode;
switch (wb.CharacterSet.ToLower()) //返回数据流的编码方式
{
case "utf-8":
encode = System.Text.Encoding.GetEncoding("utf-8");
break;
case "gb2312":
encode = System.Text.Encoding.GetEncoding("gb2312");
break;
default:
encode = System.Text.Encoding.GetEncoding("gb2312"); //默认为中文
break;
}
StreamReader sr1 = new StreamReader(sr, encode);
string zz = sr1.ReadToEnd(); //读取完成
sr1.Close();
wb.Close();//关闭
return zz;
}
补充:.NET技术 , C#