因为学校举办了一个大数据挖掘小比赛,我觉得这是一个入门python爬虫的机会,主动报名参加。在这之前自学不到半个月的python,看的是《python基础教程》这本书,也看了小甲鱼的视频,说实话入门看看他的视频真是不错,实战教程,浅显易懂。半个月大概学习了一些知识点,但不深入,也不牢固(学习了列表,元组,字典,字符串,循环,条件,函数)。就以这些前提下,我开始了我的python爬虫入门,说实话,通过一个实战入门真的是个不错的动力,边学边弄,随着遇见问题解决问题,这样的学习更深入,更牢固。
在搜索大量文章时,看到一篇文章给了几点建议,觉得不错,最主要的一点就是告诉我们,一个很不错的python爬虫入门方式就是明确一个想要爬去的一个目标,想要获得这个目标的哪些数据。
我在确定目标时,也大量搜索过python爬虫的一些要涉及到的知识,工具等。
下面这份思维导图是我所学习的部分:
pandas库和numpy库我还没有学习,现在正在深入了解上面两个部分。python知识部分这些一定要学,虽然我这个例子,有些知识点没用上,但是这些一定要学。随着我学习深入,对这些应用也一定会更娴熟。
连接部分+解析部分,任意搭配都可以实现python爬虫,处理一些常用网站都没问题,(eg:豆瓣网,糗事百科,猫眼,拉勾网......),我感觉这四个库都一定要学习下。
最后我确定了一个福彩3d 网站。
实战部分:(urllib2+正则表达式)
目标是一个福彩3d的网站,之前就幻想过分析福彩数据,然后买一注,成为百万富翁,现在想想,那时真是异想天开,哈哈哈......
目标网址:http://kaijiang.zhcw.com/zhcw/html/3d/list_1.html
工具使用:jupyter /python3.0(我觉得用这个练习爬虫真的很不错,直接打开cmd后输入:pip install jupyter 就ok了~)
首先我们使用urllib2对该网页进行连接:
这样就轻松将页面爬去下来了,下面该对页面进行解析部分了,只提取有用的部分,我想要的是 开奖日期,开奖期号以及中奖数字。使用网页的审查元素,检查想要的信息在什么标签下,对该网页标签进行正则匹配就好了:
我想要的信息都在一个tr的标签下,它的下面还有td标签,只需对需要的部分进行匹配就好了。下面是源码运行:
我标记的部分就是想要获取的信息,但是他们在一个列表里,只需用循环将这些数据遍历出来就好啦,下面是运行结果:
这样就轻松的将第一页的信息全部爬去下来了,但是问题又来了要是想多页爬去怎么办,仔细观察了网页发现了一个特点,在网址部分每页有特定的部分是连接该网页的,我们只需对这个数字进行循环就行了。
仔细观察不难发现,在list_的后面数字不同,便是打开不同的页数,那么对该数字进行一个for循环就能实现多页爬去了,哈哈哈,修改一下代码。
下图是整体的一个源码:
总结:简单的几行代码就能将想要的数据爬去下来,感觉python太强大了,人生苦短,我用python,这句话说得真对。当然了在现在大数据的时代,爬虫不是最主要的,最主要的是数据分析与应用。这也是我下一阶段要学习的,现在现将爬虫学会,学精!在这立个flag,入门数据分析时,自己在写个博客, yeah~!