码迷,mamicode.com
首页 > 其他好文 > 详细

看铜梁视窗是怎么无人化运行的【一】

时间:2015-09-29 18:12:18      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

铜梁视窗是我做的一个地区资讯网站,但是我只有一个人,那么怎么才能让资讯每天源源不断的采集进来的呢?

今天我给大家分享的就是入门方法:定点采集新闻【开发工具VS2012】

技术分享

 

采集资讯必须要有的就是一个能够采集各种网页不报错的好方法,下面的代码可以直接复制使用:

        private string PushToWeb(string url, Encoding encode)  //铜梁视窗www.5atl.com无人采集
        {
            try
            {
                string htmlStr = "";
                if (!String.IsNullOrEmpty(url))
                {
                    WebRequest request = WebRequest.Create(url);            //实例化WebRequest对象
                    WebResponse response = request.GetResponse();           //创建WebResponse对象
                    Stream datastream = response.GetResponseStream();       //创建流对象

                    StreamReader reader = new StreamReader(datastream, encode);
                    htmlStr = reader.ReadToEnd();                           //读取数据
                    reader.Close();
                    datastream.Close();
                    response.Close();
                }
                return htmlStr;
            }
            catch
            {
                return "";
            }
        }

  

有的网页是纯文字的,以上方法即可,但是有的网页是带图片的,而你又不想让自己的网站全是别人的外链,这该怎么办?按照以下方法思路解决你的问题吧:

        public string GetLocalTextImg(string page, string title)  //铜梁视窗www.5atl.com无人采集,图片下载到本地
        {
            string regimg = "src=\"http:(?<url>[^\"]*)\"";

            MatchCollection ms = Regex.Matches(page, regimg);

            if (ms == null || ms.Count < 1)
            {
                return page;
            }

            foreach (Match m in ms)
            {
                string imgurl = "http:" + m.Groups[1].Value;

                string extend = imgurl.Substring(imgurl.LastIndexOf(".")).ToLower();

                bool needsave = true;

                if (extend != ".gif" && extend != ".jpg" && extend != ".png" && extend != ".jpeg" && extend != ".gif")
                {
                    needsave = false;
                    extend = ".png";
                }

                string dir = "/Attachment/DownImg/" + DateTime.Now.ToString("yyyyMM");

                string sdir = Server.MapPath(dir);

                string guid = Guid.NewGuid().ToString();

                if (!Directory.Exists(sdir))
                {
                    Directory.CreateDirectory(sdir);
                }

                string path = sdir + "/" + guid + extend;

                bool saved = FileHelper.DownWebImg(path, imgurl);

                if (!saved)
                {
                    continue;
                }

                string savedurl = dir + "/" + guid + extend;

                page = page.Replace(imgurl, savedurl);

                try
                {
                    if (needsave)
                    {
                        CMS_Albums alb = new CMS_Albums();
                        alb.AlbumDescription = title;
                        alb.AlbumName = title;
                        alb.AlbumPic = savedurl;
                        alb.AlbumType = "";
                        alb.ShopId = 0;
                        alb.KeyWords = title;
                        alb.Smallone = savedurl;

                        alb.PicGuid = guid;

                        CMS_AlbumsBaseDAL.Create(alb);
                    }
                }
                catch
                { }
            }

            return page;
        }

  

以上两个方法就是网站运行的基础了,明天将发布看铜梁视窗是怎么无人化运行的【一】,网站运营的核心技术,可能你也会,但是或许你以前没有想到过可以这样用!

看铜梁视窗是怎么无人化运行的【一】

标签:

原文地址:http://www.cnblogs.com/daneas/p/4846637.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!