Python使用爬虫抓取网站上的美女图片

原谅我抱着不单纯的目的学习Python。最近几年爬虫的概念一直很火。于是我也来研究了一下。

爬虫的大致思路很简单,就是通过一个网站的网址,通过正则表达式或者其他方式获取到网站图片的地址,然后再将图片下载下来。

虽然思路说起来简单,但是在实践过程中你会发现很多很多的问题。最常见的是timeout超时。于是你就要花时间不断的去优化细节代码。

通过本次实践(你没看错,我用的是Python自带的IDLE写的),我算是基本上掌握了Python的大部分基础知识,还有一些编程的思想,比如面向过程和面向对象。还有函数和类。当然离大神还有很远的距离。

我发现在简单的代码下,面向过程是最简单的,也是最好理解,最容易看懂的。甚至连自定义函数都可以不用,100行以内直接就能写出来一个爬虫代码,简单直接,执行速度也最快。

其次是自定义函数,将一些功能封装起来,方便重复调用,不过简单的爬虫也没有多少重复利用的函数吧,执行速度还算比较快。

最后是大神比较推荐的,这种方式好处就是方便维护。每一个对象一个类,方便代码扩充。可是缺点也很明显,就是执行速度很慢

所以,还是那句话。写代码不能光追求牛逼,更重要的是要看执行效率。

我看到网上有人学习Python一年了居然都没有用过类,都不懂什么是面向对象。一方面我暗自嘲笑这人学的是个什么玩意儿,另一方面我也认为学习不能光盲从。不能别人说用什么牛逼你就去学,我就坚持不写自定义函数,不用对象怎么了?我就是要这么有个性。

在这方面,我觉得编程的哲学思想是很宽容的,起码比现实社会要宽容。

上面是我编写的人生中第一个爬虫。功能就是抓取指定指定目录下的文章中的图片。为此我还画了一张流程图。

其实只要你把每一步思路全部想清楚之后,再去写代码实现就很简单了。

上面是我写的另外一个爬虫,封装了很多自定义函数。同样是面向过程编写的。我总共写了三个爬虫,还有一个是用类写的,代码执行效率太慢,就不贴了。

一开始觉得写爬虫很简单,写着写着问题就都来了。你比如爬虫经常被屏蔽。这个时候就要给爬虫添加代理,添加header。然后你会发现每次抓到一半超时了,你重新运行爬虫发现又是从头抓取的,这个时候又要想到断点续传的问题。还有就是正则表达式,你应该怎么写,这些对于我一个新手来说都是问题。

通过这次实践,我感觉收获还是很大的。毕竟实践才是检验学习能力的唯一标准,能够学以致用,看来我没有白学。

以上因为代码太长,所以没有粘贴到文章中,如果需要代码,公众号7TEC回复:抓图,将会把下载地址推送给你,可以保存下来自己研究一下。

你可能感兴趣的:(Python使用爬虫抓取网站上的美女图片)