首先说明在这里我主要是把我自己学习的每一步都记录下来,强化自己的知识体系,所以会很多而且很啰嗦才能够理清楚思路,有时候方法也很麻烦,还请各位高手多指导我、帮助我,对于想学习Python的新手朋友大家可以一起学习一起交流。

   我们都知道学习一门语言最好的方法就是从实际的一个小项目或者小游戏出发,在这个过程中我们能更好的去学习这门语言,对于刚学Python的我,我觉得python真的很棒,希望喜欢python的我们一起学习,好了废话不多说,我来介绍一下我准备要做的小项目:


   【背景】作为51cto论坛的一分子,我们对于无忧币肯定不陌生,无忧币是51cto中最重要的流通货币之一,无忧币换取图书,无忧币购买实物,在身边的事例也比比皆是,据说以后对于无忧币的管理和使用将大幅度提高,要是以后一枚无忧币能堪比现在的一枚比特币那该多好啊,当然这只是YY一下了(毕竟比特币是比黄金还贵重的虚拟货币,现在都疯涨上6000了,早年要是多挖挖矿该多好啊),我其实很希望51cto只有一种通用货币那就是无忧币,换取下载豆、学院学分等等,伴随着无忧币的重要性越来越重,那么我想看看51cto流露在用户手中的无忧币到底有多少呢?无忧币数量5000以上的有多少人?10000以上的又有多少人?


   有了这个背景后,首先我们要做的第一步是什么呢?我引用看过的python学习书中的一句话来表示我们该做什么:“明白你的问题,当问题真正得到定义时,问题已经解决了一半。因为,程序不过是将人的思想转述为机器可以理解的操作序列而已,对于寻找快速解决问题,而不是研究问题的小白和Pythoner们,精确、恰当地描述问题,就等于写好了程序框架,余下的不过是让程序可以运行罢了”摘抄自《可爱的Python》(比较喜欢的一本python鸡汤书籍)

好吧,来分析我要做的事情:

第一、获得所有人拥有无忧币多少的情况;

第二、把数据存储在数据库中;

第三、对数据库中的数据进行分析;

第四、得出我们想要的结论

怎么突然让我感觉像某年春晚小品中:如何把大象装进冰箱?答曰:只需三步1、打开冰箱门,2、把大象装进去;3、关上冰箱门的感觉j_0028.gif


当然我肯定不会那样不考虑实际情况涩,那么我下边就开始对第一步进行分解来进行:

1、想要获取所有人的无忧币,首先通过我了解后真正的知道了这得是个多大的任务量啊,首先用户量高达八百多万,就算只是简单的爬取那也是一个漫长的过程,但是不管怎么样,反正我主要是为了学习,能努力全部获取到那么就获取全部的数据,不行也无所谓,但是最后代码的优化还是朝着时间效率这个方向去努力j_0059.gif

2、经过分析我发现我们进入别人的个人主页时我们能够看到对方所拥有的无忧币数量如:


如图,初步的想法我们能看到无忧币数量,而且我们通过地址栏,直接更改最后边的数字就能跳转到其他人的个人主页如:


那么我只需要写能抓取一个页面中数据的程序最后加上循环是不是就可以了呢,理论上就可以了,先写吧,边写边改吧:

我们就使用论坛编号为1的admin的页面来编写第一个程序:

对该页面进行分析,查看后台源代码,在页面上右键选择查看源代码:

按ctrl+f弹出搜索框进行搜索,搜什么?当然是搜我们最关心的无忧币了:

我们能看到当搜索“无忧币”时有三处都存在无忧币三个字,但是我们只需要无忧币后边跟着无忧币数量的那一块区域,我们找找看,找到后发现只要搜索“无忧币:”就能精确的定位到用户等级、无忧币数量这一块区域,这对后边抓取信息很重要

好,现在我要想办法把这个页面中的这一块信息提取出来,下边我就开始学着写代码了!!!

   编写代码在(二)中开始吧!因为后边会涉及到Python编程的很多要素,我都将努力记录下来:如数据类型、对象引用、控制语句、线程、文件处理、数据库操作等等的内容。(二)或者(三)中我们会得到这样的数据,这是无忧币数量在一千以上的部分截图:

大家一起慢慢学习吧!!!!