例如,我想提取某一公司的的一些基本信息,如公司名称,产品信息,联系方式等,我可以先把某个公司的主页下载到本地,然后设计一个程序,提取主页中的公司基本信息,这样的程序应该怎么实现,需要哪些技术,请各位帮忙.顺便也请教一下,如何遍历各公司的主页及下载它们的主页,这样的程序应该怎么实现,需要哪些技术? 先谢谢各位了.

解决方案 »

  1.   

    获取网页源代码: /// <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;
    }
    }然后再从源代码字符串里用正则表达式查找你想要的信息。
      

  2.   

    不用,用xmlHttp去post网页
    在返回的源文件中用正则表达式进行解析。
      

  3.   

    这个是取整个页面的,保证能用.
    如果想取局部,你自己分析下吧.//添加引用
    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"));
     
    }
      

  4.   

    1、取得源码
    2、用正则表达式分析网页源码
    3、保存为mht文件。