csdn统计是这么来的
来源:互联网 发布:千百知蓝莓汁多少钱 编辑:程序博客网 时间:2024/06/10 08:43
当我第一次打算做这个统计CSDN的网页的时候,其实我嘴上是拒绝的,我在群里讲,我拒绝,是因为我啥都不会。朋友跟我说,用python,很好,很赞,于是我就选了PHP。我跟他们讲,我选PHP,是因为我的服务器上已经安了PHP。我还说,你们难道不知道吗?“PHP是世界上最好的语言”。就这样,稳重的我慎重的选好了后台语言。
既然什么都不会,就得学,之后我打开了W3School,开始了PHP的学习之旅。恩,就这个网站——
花了好几个小时看完了基础语法,还有数据库的操作,我觉得差不多了,然后就开始了我惊涛骇浪的开发之旅。。。
当然,先写一个index,这可难不倒我,简单弄个html就好了嘛,经过我一次一次的调整布局和美化,终于我觉得页面“很好看”了,就不再管它了。它是这样的——
布局工整,井井有条,看着就充满完成网页的动力。
这里插一句:其实本来只想做个统计的,可是做的时候就觉得这东西要开放度高,要能很多用户使用并且自定义自己将来的列表,于是我花了好久做这些登录的功能还有验证神马的。。。哎,说多了都是泪。。。因为做验证,复习了一遍JS。。。
开始做的时候是想着把验证、显示各种作用的php分开,可是我觉得那调用这几个页面之间得有数据的传递,要不怎么通过验证,传递数据库的表名之类的。后来经过一番权衡,我还是把verify改成了deal,我想一个文件能解决就一个文件吧(PS:真的不是嫌麻烦)。
验证功能还比较好写,连接数据库啥的也都简单,就这样写了几天的代码,我发现核心功能居然还没写。。。。。。就是获取数据。。原来做了这么久只是在修花边,哭。那就写列数据的函数,这时候我觉得得加上一个添加记录的功能,要不用户怎么自定义呢。。。就是这货——
话说界面也有一种简介的扁平化风格呢~
代码也很简单
<table border="1"> <tr> <td>添加新的成员:</td> </tr> <tr> <td> <form action="add.php" method = 'post'> 学号:<input type = 'text' name = 'number'/> 姓名:<input type = 'text' name = 'name'/> 地址:<input type = 'text' name='address'/> <input type = 'submit'/ value='添加'> </td> </tr> </table> <hr>
然后为了给服务器上传数据,我得把数据发给自己,可是发给自己那网页之前的数据就没了,我就都不知道数据是啥了,然后我百般思索并且在群里问了一下,得知用cookie或者Sessions,恩,我用了cookie。。。发现果然好用,于是乎我发现一个php页面太乱了,cookie刚好满足让我把它分开,于是验证成了一个php,list成了一个单独的php,添加也成了一个单独的php,到这里,思路瞬间清晰了,我发现马上就要完成了,边边角角做好了,核心功能不能丢啊,于是google:PHP抓取网页,用了curl,往数据库里加了几条测使用的记录,当时我就激动了,Good,列出来了,没有保存解图,只好用文字描述了,当时感觉一切都是美好的,于是我欢快的把145全班的数据添加到数据库里了,刷新——浏览器小圈圈转了好久,好久,好久。。。。。接收不到数据。。。ok,后台挂了,抓取耗时太长了。
啪,这个世界黑暗了。
我开始想解决办法,大家都说Python的库抓网页效率很高,于是我打算用python写个函数给php用,这样应该能好多了,然后谷歌——恩,我决定优化PHP了(PS:真的真的不是怕麻烦。。。。。。)。google到可以用多线程抓取,不错嘛,那就把curl换成curl_muli嘛。然后继续搜php多线程抓取网页,果然被我搜到了,呶,就这个,看着代码看了一会儿,懵逼了。。。我想这难不倒我的,又继续看了几遍,勉强懂了一点点,算了,不懂还不会直接拿来用嘛,然后就直接Ctrl+C,Ctrl+V!good,可以用
<?php $urls = array( 'http://www.sina.com.cn/', 'http://www.sohu.com/', 'http://www.163.com/' ); $save_to='/test.txt'; // 把抓取的代码写入该文件 $st = fopen($save_to,"a"); $mh = curl_multi_init(); foreach ($urls as $i => $url) { $conn[$i] = curl_init($url); curl_setopt($conn[$i], CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"); curl_setopt($conn[$i], CURLOPT_HEADER ,0); curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60); curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,true); // 设置不将爬取代码写到浏览器,而是转化为字符串 curl_multi_add_handle ($mh,$conn[$i]); } do { curl_multi_exec($mh,$active); } while ($active); foreach ($urls as $i => $url) { $data = curl_multi_getcontent($conn[$i]); // 获得爬取的代码字符串 fwrite($st,$data); // 将字符串写入文件。当然,也可以不写入文件,比如存入数据库 } // 获得数据变量,并写入文件 foreach ($urls as $i => $url) { curl_multi_remove_handle($mh,$conn[$i]); curl_close($conn[$i]); } curl_multi_close($mh); fclose($st); ?>
而且多线程果然不一样,速度比原来抓三四个网页都快。
至此,网页的制作基本上完成了,当然是功能最简陋的Version_1。
最后来一个网页的写真,表达一下我愉悦的心情~~
后期打算,加个能排序的JS,然后。。。还有。。。等再想吧
结语:语言不是难事,当有了“学着解决当前问题”的能力的时候,不会有太多的困难的,而我应该不断培养学习能力,这个时代,只要不断学习,就不会被时间所抛弃。还有我觉得在进行一个项目之前,系统地学习很有必要的,这样在开发的时候能有更高的效率,我这种粗涉然后东一头西一头的开发,也只适合现在有大把时间的大学。不过,学的东西也很多哦。总之,不断学习肯定不会错。
- csdn统计是这么来的
- SEO高质量的外部链接是这么来的
- 程序员的外快是这么挣来的
- 明知是广告,却欲罢不能?!好软文,就是这么来的
- 三十八、原来聊天机器人是这么做出来的
- 原来聊天机器人是这么做出来的
- 盼了十年,想了十年,这一切来的是这么突然
- Press any key to continue 原来是 这么写出来的
- 考试是这么考的
- 钱是这么积累的
- 今天是我第一天来csdn的blog
- 今天是我来CSDN的第一天
- 今天是来CSDN写博客的第一天
- 来CSDN网站第一天找到的是.......
- 来了CSDN这么久,第一次写博客
- 完了,来csdn这么久了,竟然不会发帖子!
- csdn的统计功能
- 新的一年就这么来了??
- 中英文面试
- 两份笔试
- 如何提升研发人员的非技术才能
- 10多场不同的面试
- 关于navigationController的viewControllers
- csdn统计是这么来的
- 《Neural networks and deep learning》概览
- 面试者自述
- 【备忘】linux 命令不可执行
- 软件开发人员面试
- c++模板类学习
- 网络视频播放地址
- Javascript 单元测试框架-Jasmine
- 英文算法数据库面试