个人信息
- 牛慧升
- 男/1993
- 烟台大学--软件工程
- 两年工作经验
-
博客地址
- 博客园博客地址:http://www.cnblogs.com/alvin-niu
- CSDN博客地址:http://blog.csdn.net/alvin930403
- Git地址:https://github.com/AlvinNiu
-
联系方式
- 18310110978
- niuhuisheng2468@gmail.com
-
意向
- 地点:
上海
- 岗位:
爬虫工程师
- 地点:
工作经历
- 2015.10——至今
- 亿海蓝(北京)数据技术股份公司
- 数据爬虫工程师、.Net研发工程师
个人技能
- 主要分为后端开发、前端开发、数据库开发
-
后端开发
- 熟练掌握 ASP.NET MVC开发技术。
- 熟练掌握 .net Remoting wcf 等分布式开发技术。
- 深入理解HTTP协议。
- 熟练掌握 winform 桌面应用程序开发技术。
- 熟练掌握 C# ,.net Framework 类库,多线程,正则表达式。
- 熟练使用PhantomJS框架,并使用该框架对那些进行页面加密的网站进行采集。
- 了解Entity Framework的用法,并在实际用在项目中。
- 了解Java的语法,开发过Java web项目。
-
前端开发
- 熟练掌握html5,css,jquery 等语法。
- 熟练掌握JQuery的用法。
- 熟悉E-charts框架,使用该框架制作图表。
-
数据库开发
- 熟练掌握Sql语法的使用。
- 熟练掌握 sql server ,mysql 等关系数据库的开发和管理。
- 在开发中偶尔使用MongoDB数据库。
项目经验
- 想要技术成长,必须经过项目的洗礼
-
企业项目
-
拖车互助网(20gp.cn)
产品是深圳的分公司的产品,由北京开发及维护。 该产品从开发到维护持续了近两年的时间,这个产品是实时的请求网站,并获取到相关的PDF文件。 该产品从设计到管理是我负责的,最初经运营人员讲解业务需求,我来搭框架以及设计实现方式。 该产品动用了4个人,其中有人负责前端开发,有人负责工具的开发,有人负责数据库的开发,我来负责数据采集以及协调大家,并为大家讲解技术上如何实现的需求。 该产品涉及到了积分,在设计时要格外注意积分规则的设计,以及方便财务对账。 该产品用到的技术:MVC4、Remoting、ClickOnce、正则表达式等。在该产品中使用了自己写的日志类。所有可能出现的网络错误及异常都会被捕获,并且记录在日志中。 该产品中遇到的困难以及解决方法: 1.别人使用了PDF控件,但是该控件要依赖于IE浏览器,并且控件的稳定性有待商榷。所以我们截获了该网站传输给该控件的内容,自己使用Itext技术写了PDF文件,只要得到的一模一样的文件即可。 2.原网站使用初级验证码:使用OCR技术,破解验证码 3.原网站使用有噪点与噪线的验证码:通过识别验证码,去噪。获取样本,只要成功率在80%以上则可使用。 4.使用高级的验证码:使用人工打码技术。 5.面对原网站的条形码,我们采取生成条形码技术翻译成C#语言。 6.JS加密 ,解决办法,把原网站的JS加密程序下载下来,使用PhantomJS,获取到加密后的值。请求即可。 7.封锁IP,原网站对IP地址进行封锁,使用代理池中的IP,随机请求。让他们封无可封。 8.封锁账号,同一个账号请求太多。我采取多账号,多IP随机请求。 9.原网站支付通道容易堵死。当我检测到支付通道堵死的时候,我会提示用户,暂时停止支付。待缓解之后,继续。
-
I跟踪(www.igenzong.com)
采集所有船公司的网站,获取相关船公司的集装箱信息,以及船舶信息,把所有采集到的数据存储到数据库中。在请求数据库的时候,使用的是Entity FrameWork 框架 其中涉及到使用WebRequest请求,使用正则表达式匹配到自己想要的数据。 其中会遇到一系列困难,例如:登录验证、验证码、JS加密、封锁IP等等。这些措施都会被我一一解决掉。
- 金科信港口信息接口(data.jkx.tuochebao.com)
产品介绍:为金科信TMS提供港口信息的接口,该产品的从开始搭框架到开发均是我一个人。 使用技术:使用MVC4,框架 .NET Framework 4.5.2。随机代理采集数据,使用Remoting技术,使用网站直接调用服务的接口,使用服务保持回话。Web提供的接口,全是实时采集与实时提交信息,未与数据库打交道。如果出错,使用Log4net捕获。查日志即可。如果代理出错或者失效,会有代理平台记录。
- OpenAIP(open.shipxy.com/Doc)
产品介绍:为船讯网的APP与微信公众号,提供数据接口。 使用技术: 该产品使用的是MVC4,框架.NET Framework 4.0,直接使用ADO.NET 技术来访问数据库,在程序中直接写存储过程,事务来获取数据,以及对数据操作。 并未使用Entity FrameWork框架,由于该接口是为微信和APP,所以效率一定要高,使用这种反射,虽然能增加开发的效率,但是运行效率并不高。
- 拖车宝(www.tuochebao.com)
产品介绍:为拖车宝APP提供后台支持,提供接口。该产品的业务逻辑比较复杂,所以维护起来相当难。由于业务交错复杂,程序也跟着业务走,发生改动则需处处小心。 使用技术:MVC4、框架.NET Framework 4.0、使用Log4net记录日志、多线程编程。
海洋气象数据采集
产品介绍:海洋气象数据是为船讯网做服务的,由于采集的是全球的气象数据,所以数量非常大,并且对效率要求非常高。 使用技术: Windows Service、多线程编程、异步编程、MySql数据库、WebRequest,其中还涉及到,要与C++团队进行对接。 项目中涉及三个方面,采集数据、处理数据、存储数据。采集数据与存储数据比较慢,可以利用硬件的DMA 技术。使用异步请求。但是处理数据就必须使用多线程了,由于处理数据速度相对较快,本项目采取队列的方法,把采集到的数据放到队列中、处理数据处理之后,放入到另一个队列,等待存储数据的异步线程去使用。计算出相对合适的线程数,达到效率最高。
-
爬地图
采集地图上的船舶信息,随时跟踪船舶的位置。 该项目从设计到开发只有我一个人负责。 用到的技术:Windows Service、MySql、正则表达式。
-
-
个人项目
-
爬虫类库
使用C#开发,WebRequest作为基础,把请求封装起来,用起来可以只传输一个地址,就可以获取到请求返回的内容。 另外,开发者还可以自定义。该项目我已经开源,在GitHub上可以找到。 地址:https://github.com/AlvinNiu/NewSpider
-
代理池
使用C#开发,通过获取网络上所有的免费代理,使用服务保持一个永远处于活跃状态的代理池,为了爬虫封IP所用。使用MySql数据库,具体实现方法,见面详细了解 地址:
-
自我评价
爱讲道理的程序员
致谢
感谢看到最后,希望与您一起共事。