爬虫这东西最早出现在我大学计算机网络的课程上面,我们当时的老师人很好,期末不笔试,他说这东西笔试没什么用,对于一个年纪比较大的老师来讲,能提出这种方式,实在难得。当时在考虑做一个与网络有关的东西好,第一个想到的就是爬虫。想想也没想过用Java写过这种东西,所以当时是一般看一本爬虫的书一边敲代码,现在想起来有很多东西是没有想明白的——我当时爬的是刘末鹏的博客,把全部文章用分类爬了下来,在本地可以打开。
后面老师评价的时候就说,你这个只能爬这个,其实你应该让他智能些,让他可以爬图片,可以爬特定的内容,我想想也是,不过知道的,后续有别的东西就没再去弄了。
而后知道写爬虫还可以用Python写,前面草草看了Python的一点东西,不系统。
后面看了《Learn Python in hard way》,嗯,这本书其实是为了连没有编程基础的人也学会,有编程基础的英文却不好的,可以练练英文,其实书到后面的跨度是比较大的,包括那个课后的习题游戏,自己不理清思路还是很难写出来。
有了大概的基础之后,你会发现,python有好多好多API。
《The Python Standard Library by Example》是一本大厚书,这种书更像查字典,官网的Python library的例子有点蛋疼。这本书超级详细,包括正则表达式。
学这门语言的时候遇到很多有趣的事情。
当年那位在圣诞无聊开发了一门编程语言的人就是Python的作者。
用自带的库也能写爬虫,但是有一个第三方库用起来很方便——requests,这个库不有趣,有趣的是他的作者——Kenneth Reitz。很年轻。为什么说有趣,是因为我看了之后上一个减肥的问题。
减肥前,他长——
减肥后,他长——
他爱好好像也是摄影,GitHub上的粉丝也是多。无论从编程还是减肥,他都是一个励志的例子。
回来正题:
当你要做点什么东西的时候,你还是需要想清楚你要获取什么,不然你很难写下去。像我刚开始模拟登录知乎的时候,登录完成后很高兴,后面也不知道怎么去爬,也没思路。后面有同事想获取一个网站上的图片,他花了好多钱买了一个php上传图片的工程,不禁感叹淘宝的钱真好赚。而他要下载图片,想想自己最近学的requests库还有其他东西。决定帮他爬。
要爬的是http://zone.quanjing.com这个网站。首先我先找了设计这个分类下的照片,分析了下html的源代码。
-
<img class="250img" width="250" height="337" title="" alt=""
-
showsrc="http://zonepic.quanjing.com/photo/p0/151112/151112-023836-ewvdeb.jpg" src="/image/grey.gif">
-
</a> </div></center></div>
-
<div class="favorite"><p class="title" title="跨界创意"><a href="http://www.quanjing.com/share/1160068">跨界创意</a>
其实知道自己获取这些数据之后,接下来要做的就是知道用正则如何去匹配到。思路有了,实现就简单了。
然后你知道怎么用requests库,python的一些基础,正则表达式就可以爬取到首页的图片了。
-
#!/us