爬虫软件开发要用到的代码

1.时间戳转为C#格式时间

        /// <summary>
        /// 时间戳转为C#格式时间
        /// </summary>
        /// <param name="timeStamp">Unix时间戳格式</param>
        /// <returns>C#格式时间</returns>
        private DateTime GetTime(string timeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(timeStamp + "0000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        }

2.获取验证码

 public Image GetImg(string url)
        {
            if (string.IsNullOrWhiteSpace(url))
            {
                url = string.Format("http://ms.baihe.com/checkcode/defaultImageService?0.{0}", DateTime.Now.Ticks);
            }

            cookieCheckCode = "";

            var item = new HttpItem()
            {
                URL = url,
                //Encoding = System.Text.Encoding.GetEncoding("GBK"),
                Method = "get",
                //IsToLower = false,
                Expect100Continue = false,//代理时用这个
                Cookie = _cookie,
                Timeout = 100000,
                ReadWriteTimeout = 30000,
                UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0",
                ContentType = "text/html",
                ResultType = ResultType.Byte
            };
            var result = http.GetHtml(item);

            if (result.Cookie != null)
                cookieCheckCode += result.Cookie.StartsWith("PHPSESSID")
                    ? result.Cookie.Substring(result.Cookie.IndexOf(‘,‘) + 1)
                    : result.Cookie;

            return byteArrayToImage(result.ResultByte);
        }

        private Image byteArrayToImage(byte[] Bytes)
        {
            using (var ms = new MemoryStream(Bytes))
            {
                return Bitmap.FromStream(ms, true);
            }
        }

3.正则表使用类

 Regex re = new Regex(@"&uid=(\d+)\"" class=\""yellow\"">(.+)</a>", RegexOptions.None);
            MatchCollection mc = re.Matches(resulthtml.Html);

            var list = new List<User>();
            foreach (Match match in mc)
            {
                var uid = match.Groups[1].Value;
                var nick = match.Groups[2].Value;
                list.Add(new User { uid = uid, nickname = nick });
            }

4.获取时间

        public long GetTimeLikeJS()
        {
            var st = new DateTime(1970, 1, 1);
            var t = (DateTime.Now.ToUniversalTime() - st);
            return (long)t.TotalMilliseconds;
        }

5.另一线程操作主线程的控件

           this.Invoke((Action)delegate()
                    {
                        this.textBox1.Text = "登录成功";
                    });
时间: 2024-11-03 05:23:34

爬虫软件开发要用到的代码的相关文章

python软件开发规范&amp;分文件对于后期代码的高效管理

根据本人的学习,按照理解整理和补充了python模块的相关知识,希望对于一些需要了解的python爱好者有帮助! 一.软件开发规范--分文件 当代码存在一个py文件中时: 1.不便于管理 (修改,增加) 2.可读性差 3.加载速度慢 Django--雏形(约定俗称) 1.启动文件 启动接口 2.公共文件 大家需要的功能 3.配置文件(静态文件) 变量 4.主逻辑 核心 5.用户相关数据 账号和密码等文件 6.日志 记录主要信息,记录开发人员的行为 高内聚 二.sys sys python解释器做

《快速软件开发》的感悟

书中对不同的人员有不同的动机作了一些比较详细的分析.比如:开发人员有比如成就感(当然我觉得任何参与到这个其中的人都有成就感的).开发机遇.工作乐趣等.又如对管理人员,其动力主要是:责任感.成就感.还有受认可程度等.因为自己在一开始对这些东西并不是非常地清楚,所以有些工作开展起来并不是非常顺利.现在了解了一些这个东西之后,对激发人员动力是非常有用的.同时这一章举了一些激励失败的例子如过分夸张的表扬等,这些tips对于PM是非常有用的.所以推荐PM去阅读一下这一章. 团队合作是在12章中有比较好的介

常用的软件开发定律

墨菲定律(Murphy's Law) 可能是最著名的定律之一,主要是因为它不仅适用于软件开发.如果事情可能出错,它就会出错.第一个推论:那些有效的(代码),你可能反而没有写出来.第二个推论:诅咒是唯一一门所有程序员都能流利说出来的语言.结论:电脑会按照你所写的(代码)去做,而不是按照你所想的去做.防御性编程.版本控制.末日场景(针对那些该死的僵尸服务器攻击).TDD.MDD,等等,这些都是针对这一定律的防御性实践. 布鲁克定律(Brook's Law) 大多数开发人员都有意无意地经历过布鲁克定律

让你提前认识软件开发(45):代码的第一印象

第3部分 软件研发工作总结 代码的第一印象 我们都很注重给别人的第一印象,也有很多书籍教我们怎样给别人留下一个美好印象的.确实,如果我们第一眼看到某个人,就觉得很不爽,那么一定会在心理上产生抵触,以后再见到他,会有一种疏远的感觉.也正因为如此,当今社会交往中的"面子工程"很重要,不管怎样,先撑足了自己的脸面再说. 代码也一样,也会给别人留下或好或差的印象.当我们看到优美的代码时,会有一种想继续研究下去的欲望,甚至会有一种觉得很享受的感觉.相反,当我们看到丑陋的代码时,就会咬牙切齿,因为

让你提前认识软件开发(40):既要写好代码,又要写好文档

第3部分 软件研发工作总结 既要写好代码,又要写好文档 对于软件相关行业,在学校或单位上,大家也许都已经注意到了,除了要编写的程序.绘制设计图之外,还有一个重要的工作便是写文档.为什么要写文档呢?因为我们要把自己做的东西展示出来,不光展示给同行看,可能还要展示给其他岗位上的工作人员看,甚至展示给用户看.如果我们只是会写程序,不会在文档中描述自己的想法,那么就真正的成为"码农"了. 工作也有一段时间了,我发现周围的同事,会写高质量文档的确实很少.李开复老师在<浪潮之巅>的序言

软件开发中的自测及C代码示例

在软件开发中,程序自测是一个永远都绕不开的话题.很多开发人员以写出有难度的代码为荣,但却不重视对自己编写的代码进行测试,这导致了最终到达客户手中的产品质量不高,bug频发,损害了公司的形象.对于一个开发人员来说,我们应该将开发和自测置于同等重要的地位,我们花在自测上的时间要不比开发少.能否对自己编写的代码进行充分的自测也是检验一个开发人员水平高低的标准之一. 自测方法 根据所编写的程序的特点,自测方法大致有如下几种: 第一种,利用模拟工具进行自测.这种方法适用于需要其他模块(尚不具备)发过来的消

华为软件开发云测评报告二:代码检查

相关文章:<华为软件开发云测评报告一:项目管理> 体验环境 体验方式:PC端 系统:Windows 64位 浏览器类型:Chrome浏览器 浏览器版本:58.0.3029.110 体验时间:2017.06.25 分析目的 了解华为软件开发云的代码检查服务功能,分析其优缺点: 从人工代码检视到自动化代码检查,华为软件开发云如何保证代码质量: 代码检查未来的发展趋势: 产品简介 产品名称:华为软件开发云 定位:软件开发云(DevCloud)是集华为研发实践.前沿研发理念.先进研发工具为一体的研发云

软件开发中部分代码的注解

初次接触软件开发,先是阅读别人的代码.学习别人的一些经验!下面是遇到的一些代码及注解! @ParentPackage("basePackage")    // 默认继承struts.xml文件的<package name="basePackage" extends="struts-default"> /* * 函数功能:将对象转换成Json字符串,并响应回前台. * 转换的原因:页面使用的数据格式为JSON * 一般我们在服务端中使用

代码大全读书笔记2---用隐喻来充分理解软件开发

借助隐喻可以更加深刻地理解软件开发的过程.通过把不太理解的东西和一些你较为理解.且十分类似的东西做比较,这样可以对不太理解的东西产生更深刻的理解,这种使用隐喻的方式叫做建模. 隐喻的威力在于其生动性,能够让你把握整个概念,暗示各种属性.关系以及需要查证的部分.但是过度引申时,模型也会误导人们. 软件隐喻的作用更像是启示,而不是算法,告诉你如何去寻找答案.算法是一套定义明确的指令使你完成某个特定的任务,算法是可预测的.确定的.不易变化的. 算法与启发式方法之间的区别就在于其距离最终解决办法的间接程