请问各位大虾,小弟想实现一个自动采集当当网图书排行书名到自己网站上,有两点疑问:
火车头可以采集当当这类动态网站么?
必须更新到自己真实有域名的网站么?本地网站不行吗?可以的话要怎么改?
在asp.net下怎么实现

解决方案 »

  1.   

    http://topic.csdn.net/u/20090305/13/0e650295-762d-4844-8c64-ce24b6e72645.html看看 可以参考一下
      

  2.   

    如果在csdn上做广告,最好只给免费软件做广告。
      

  3.   


    晕 弄错了哦 /// <summary>
        /// 分析并整理信息
        /// </summary>
        /// <returns></returns>
        public string[] GetInfo()
        {
            WebClient wc = new WebClient();//创建WebClient对象
            string msg;
            try
            {
                byte[] byDats = wc.DownloadData(this.TextBox1.Text);//下载指定的Url资源
                msg = UnicodeEncoding.Default.GetString(byDats);//转换编码
            }
            catch (Exception ex)
            {
                msg = ex.Message;
            }        
            #region 正则切割
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"·\s*<a[^>]*>(?<title>[^<]*)</a>\s*<font[^>]*>(?<date>[^<]*)</font>");
            string result = string.Empty;
            foreach (Match m in reg.Matches(msg))
            {
                result += m.Groups["title"].Value + ",";//新闻标题
                result += m.Groups["date"].Value + "|" + "\r\n";//时间
            }
            #endregion 正则切割结束        string[] strResult = result.Split('|');
            ArrayList al = new ArrayList();
            for (int i = 0; i < strResult.Length; i++)
            {
                al.Add(strResult[i]);        }
            string[] ds;
            ArrayList al2 = new ArrayList();
            for (int i = 0; i < al.Count; i++)
            {
                ds = al[i].ToString().Split(',');
                foreach (string s in ds)
                {
                    al2.Add(s);
                }
            }
            return (string[])al2.ToArray(typeof(string));
        }    /// <summary>
        /// 获取文章标题
        /// </summary>
        /// <returns></returns>
        public string[] GetTitle()
        {
            ArrayList al = new ArrayList();
            string[] Titles = GetInfo();
            for (int i = 0; i < Titles.Length; i++)
            {
                if ((i % 2) == 0)
                {
                    al.Add(Titles[i]);
                }
            }
            return ((string[])al.ToArray(typeof(string)));
        }
        /// <summary>
        /// 获取文章发布日期
        /// </summary>
        /// <returns></returns>
        public string[] GetDate()
        {
            ArrayList al = new ArrayList();
            string[] Dates = GetInfo();
            for (int i = 0; i < Dates.Length; i++)
            {
                if ((i % 2) != 0)
                {
                    al.Add(Dates[i]);
                }
            }
            return ((string[])al.ToArray(typeof(string)));
        }
        /// <summary>
        /// 显示数据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button2_Click(object sender, EventArgs e)
        {
            string[] ss = GetTitle();
            Response.Write("标题"+"<br>");
            for (int i = 0; i < ss.Length; i++)
            {
                Response.Write(ss[i]);            
                Response.Write("<br>");
                
            }
            string[] ss2 = GetDate();
            Response.Write("日期"+"<br>");
            for (int j = 0; j < ss2.Length; j++)
            {
                Response.Write(ss2[j]);
                Response.Write("<br>");
            }
          
        }
        protected void Button3_Click(object sender, EventArgs e)
        {
            string [] titles=GetTitle();
            string [] dates=GetDate();
            for (int i = 0; i < ((titles.Length + dates.Length) / 2); i++)
            {
                Insert(titles[i], dates[i]);
            }             
        }    public void Insert(string title,string date)
        {
            string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["conn"].ToString();
            SqlConnection conn = new SqlConnection(connStr);
            string sqlStr = "insert into news(title,sendtime) values(@title,@date)";
            SqlCommand cmd = new SqlCommand(sqlStr,conn);
            cmd.Parameters.Add("@title",SqlDbType.VarChar,200);
            cmd.Parameters.Add("@date",SqlDbType.VarChar,50);
            cmd.Parameters["@title"].Value = title;
            cmd.Parameters["@date"].Value = date;
            conn.Open();   
            cmd.ExecuteNonQuery();
            conn.Close();
        }