爬虫要用到的知识

所需步骤:获取对应url的html、解析html、提取有用的标签下的内容、相关内容存入数据库或保存到本地

所需知识点:一般爬虫工具、HtmlParser.net、正则表达式、js(jquery)、连接数据库技术

具体归纳如下:

1、[C#HttpHelper]类

 增加url与解码的方法:

/// <summary>
       /// 根据指定的编码对RUl进行解码
       /// </summary>
       /// <param name="text">要解码的字符串</param>
       /// <param name="encoding">要进行解码的编码方式</param>
       /// <returns></returns>
        public static string URLDecode(string text, Encoding encoding)
        {
            return HttpUtility.UrlDecode(text, encoding);
        }
        /// <summary>
        /// 根据指定的编码对URL进行编码
        /// </summary>
        /// <param name="text">要编码的URL</param>
        /// <param name="encoding">要进行编码的编码方式</param>
        /// <returns></returns>
        public static string URLEncode(string text, Encoding encoding)
        {
            return HttpUtility.UrlEncode(text, encoding);
       }

HttpHelper类使用方法:

HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get
                Timeout = 100000,//连接超时时间     可选项默认为100000
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
                Cookie = "",//字符串Cookie     可选项
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
                ContentType = "text/html",//返回类型    可选项有默认值
                Referer = "http://www.sufeinet.com",//来源URL     可选项
            };
            item.Header.Add("测试Key1", "测试Value1");
            item.Header.Add("测试Key2", "测试Value2");
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            string cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;

HttpHelper获取图片的方式:

HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.sufeinet.com",//URL     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                ResultType = ResultType.Byte
            };
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            if (result.StatusCode == System.Net.HttpStatusCode.OK)
            {
                //表示访问成功,具体的大家就参考HttpStatusCode类
            }
            //表示StatusCode的文字说明与描述
            string statusCodeDescription = result.StatusDescription;
            //把得到的Byte转成图片
            Image img = byteArrayToImage(result.ResultByte);
        }

        /// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                Image outputImg = Image.FromStream(ms);
                return outputImg;
            }
        }

 

posted @ 2015-12-14 17:50  Bella工作坊  阅读(312)  评论(0编辑  收藏  举报