HTTP协议、正则表达式、HTML,WEB数据采集基础
2013-03-13 00:29
288 查看
前几天在猪八戒威客网上看到这么一个开发任务。买家要求开发一款软件,能实时监视某彩票网上公布的时时彩的号码,并实时显示在软件界面上。一但发现某个号码组合出现,就提示用户。这个软件要怎么做呢,如果熟悉HTTP协议、正则表达式、HTML,很容易想到。当然,这个小任务并不怎么需要正则表达式、HTML知识。只需了解HTTP协议,通过向彩票网服务器GET请求网页,保存到缓冲区内,然后查找相关字符串即可。但如果是复杂点的检索呢?就需要正则表达式、HTML知识了。
这样来设想,我们想开发一款软件,能自动采集某网站上出现的所有Email邮箱地址,然后向这些邮箱发送垃圾邮件。该如何实现呢?我想,除了上述三点知识,还需要熟悉POP3协议吧。首先,根据网站主页URL,获取网站主页,用正则表达式搜索其中所有的URL地址和Email地址,URL地址就递归进去,Email地址就保存下来。多线程操作。同时对采集到的Email地址发送邮件。
这些用C++实现并不难,首先,通过HTTP协议连接WEB服务器,MFC已经封装了相关了类,可以直接使用。正则表达式库,C++11标准里已经集成,VS2010里就可用了。还有很多丰富的第三方类库还没有用呢。不过据说这种数据采集、数据挖掘的工作,用J***A更好做,J***A里已经有封装好了现成的庞大的类了。而C++是东拼西凑实现的。这也正是C++的特点,第三方类库丰富。
不能为了做这么一个WEB数据采集软件就转学J***A吧,既然C++能实现就上吧,能自己动手解决一切难题的程序员才是好程序员。
说起网络协议,真的有必要好好学习一下啊,虽然都是些概念性的东西,枯燥无味,但非常有意义,这也是基础啊!
不管ASP/JSP/PHP还是什么写的网页,都是基于HTTP通信的,掌握了HTTP协议,我们就能写出很多有意思的程序。纵使我连HTML都不懂,还是写出了某网站账号批量注册机。
协议是个底层的东西,在底层搞开发好处就在于很多东西都统一了,坏处就在于难度大了,复杂性强了。HTTP协议也是基于TCP的,你甚至可以连HTTP协议都不看,直接基于TCP,用send和recev和WEB服务器通信,只是那样会更麻烦罢了。
放眼望去,国内IT届,大部分人都去做应用开发、WEB开发了。搞内核、驱动、底层的人太少了。目前正是缺这种人才。
坚持做底层!
这样来设想,我们想开发一款软件,能自动采集某网站上出现的所有Email邮箱地址,然后向这些邮箱发送垃圾邮件。该如何实现呢?我想,除了上述三点知识,还需要熟悉POP3协议吧。首先,根据网站主页URL,获取网站主页,用正则表达式搜索其中所有的URL地址和Email地址,URL地址就递归进去,Email地址就保存下来。多线程操作。同时对采集到的Email地址发送邮件。
这些用C++实现并不难,首先,通过HTTP协议连接WEB服务器,MFC已经封装了相关了类,可以直接使用。正则表达式库,C++11标准里已经集成,VS2010里就可用了。还有很多丰富的第三方类库还没有用呢。不过据说这种数据采集、数据挖掘的工作,用J***A更好做,J***A里已经有封装好了现成的庞大的类了。而C++是东拼西凑实现的。这也正是C++的特点,第三方类库丰富。
不能为了做这么一个WEB数据采集软件就转学J***A吧,既然C++能实现就上吧,能自己动手解决一切难题的程序员才是好程序员。
说起网络协议,真的有必要好好学习一下啊,虽然都是些概念性的东西,枯燥无味,但非常有意义,这也是基础啊!
不管ASP/JSP/PHP还是什么写的网页,都是基于HTTP通信的,掌握了HTTP协议,我们就能写出很多有意思的程序。纵使我连HTML都不懂,还是写出了某网站账号批量注册机。
协议是个底层的东西,在底层搞开发好处就在于很多东西都统一了,坏处就在于难度大了,复杂性强了。HTTP协议也是基于TCP的,你甚至可以连HTTP协议都不看,直接基于TCP,用send和recev和WEB服务器通信,只是那样会更麻烦罢了。
放眼望去,国内IT届,大部分人都去做应用开发、WEB开发了。搞内核、驱动、底层的人太少了。目前正是缺这种人才。
坚持做底层!
相关文章推荐
- 网站采集(根据正则表达式截取需要的html数据)
- 简单的正则表达式http://www.cainiao8.com/web/js_note/js_regular_expression.html
- C#网页数据采集(三)HttpWebRequest
- HttpWebRequest及正则表达式
- web数据采集核心技术分享系列(二)如何提取信息?字符串?正则?xpath?xslt?自定义?...什么才是王道?
- 黑马程序员——Java基础——String类、StringBuffer类、StringBuilder类、基本数据类型对象包装类操作、正则表达式应用
- POST数据提交,关于System.Web.HttpUtility.HtmlEncode与System.Web.HttpUtility.UrlEncode的区别
- java+Jsoup 正则过滤html网页标签【多线程数据采集之二】
- java+Jsoup 正则过滤html网页标签【多线程数据采集之二】
- C#正则表达式整理备忘 转载(http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html)
- Web基础之正则表达式
- 17种正则表达式 [转贴自http://news.dvbbs.net/infoView/Article_2842.html]
- WEB点对点程序传输数据,是用HTTP协议还是TCP/IP协议?
- Google Python Class 之——正则表达式提取html网页数据字段
- 软件开发,创意是灵魂——用HttpWebRequest和正则表达式提取网页中的链接
- 正则表达式备忘-----------转载自http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html
- 正则表达式 很好很强大(转自http://dragon.cnblogs.com/archive/2006/05/08/394078.html)
- Linux web服务与HTTP协议基础概念
- NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)
- java正则表达式抽取html数据