在asp.net中如何实现提取某一网页中的信息的功能. 例如,我想提取某一公司的的一些基本信息,如公司名称,产品信息,联系方式等,我可以先把某个公司的主页下载到本地,然后设计一个程序,提取主页中的公司基本信息,这样的程序应该怎么实现,需要哪些技术,请各位帮忙.顺便也请教一下,如何遍历各公司的主页及下载它们的主页,这样的程序应该怎么实现,需要哪些技术? 先谢谢各位了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取网页源代码: /// <summary> /// 获取网页的源代码 /// </summary> /// <param name="siteStr"></param> /// <returns></returns> public static string getHTML(string siteStr) { string returnStr = ""; bool isSuccess = true; WebRequest myWebRequest=WebRequest.Create(siteStr); myWebRequest.Timeout = 5000;//超时时间 try { WebResponse myWebResponse=myWebRequest.GetResponse(); Stream resStream = myWebResponse.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); returnStr = sr.ReadToEnd(); resStream.Close(); sr.Close(); } catch(System.Net.WebException E) { string tempStr = E.Message; isSuccess = false; } if(isSuccess) { return returnStr; } else { return null; } }然后再从源代码字符串里用正则表达式查找你想要的信息。 不用,用xmlHttp去post网页在返回的源文件中用正则表达式进行解析。 这个是取整个页面的,保证能用.如果想取局部,你自己分析下吧.//添加引用using System.Net;using System.Text ;public string GetRequestString(string strUrl,int timeout,int enterType,Encoding EnCodeType) { string strResult; try { HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl) ; myReq.Timeout = timeout; HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); Stream myStream = HttpWResp.GetResponseStream () ; StreamReader sr = new StreamReader(myStream , EnCodeType); StringBuilder strBuilder = new StringBuilder(); while (-1 != sr.Peek()) { strBuilder.Append(sr.ReadLine()); if(enterType==1) { strBuilder.Append("rn"); } } strResult = strBuilder.ToString(); } catch(Exception err) { strResult = "请求错误:" + err.Message; } return strResult ; }private void Button2_Click(object sender, System.EventArgs e) { this.Label1.Text = GetRequestString( "http://www.163.com/",20000,1,System.Text.Encoding.GetEncoding("GB2312")); } 1、取得源码2、用正则表达式分析网页源码3、保存为mht文件。 娱乐一下,关于bit.【散分】 求一正则表达式提取匹配到的某html元素的指定属性值 gridView的一个增加行的问题 求不等于0的正则 在线等。。。。。。。。。谢谢 我想用asp做一个高级检索的网页,求高手指导 未能加载类型hr 一道JavaScript的问题! 存储过程问题,在线等 ASP.net 以DLLImport方式调用第三方dll问题 真是奇怪,无能为力!!!!! 用户控件里的FORM问题
/// 获取网页的源代码
/// </summary>
/// <param name="siteStr"></param>
/// <returns></returns>
public static string getHTML(string siteStr)
{
string returnStr = "";
bool isSuccess = true;
WebRequest myWebRequest=WebRequest.Create(siteStr);
myWebRequest.Timeout = 5000;//超时时间
try
{
WebResponse myWebResponse=myWebRequest.GetResponse();
Stream resStream = myWebResponse.GetResponseStream();
StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default);
returnStr = sr.ReadToEnd();
resStream.Close();
sr.Close();
}
catch(System.Net.WebException E)
{
string tempStr = E.Message;
isSuccess = false;
}
if(isSuccess)
{
return returnStr;
}
else
{
return null;
}
}然后再从源代码字符串里用正则表达式查找你想要的信息。
在返回的源文件中用正则表达式进行解析。
如果想取局部,你自己分析下吧.//添加引用
using System.Net;
using System.Text ;public string GetRequestString(string strUrl,int timeout,int enterType,Encoding EnCodeType)
{
string strResult;
try
{
HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(strUrl) ;
myReq.Timeout = timeout;
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream () ;
StreamReader sr = new StreamReader(myStream , EnCodeType);
StringBuilder strBuilder = new StringBuilder(); while (-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine());
if(enterType==1)
{
strBuilder.Append("rn");
}
}
strResult = strBuilder.ToString();
}
catch(Exception err)
{
strResult = "请求错误:" + err.Message;
}
return strResult ;
}
private void Button2_Click(object sender, System.EventArgs e)
{
this.Label1.Text = GetRequestString( "http://www.163.com/",20000,1,System.Text.Encoding.GetEncoding("GB2312"));
}
2、用正则表达式分析网页源码
3、保存为mht文件。