记录第一次纯手打爬虫经历

这两天看了看Python的一些语法,发现Python还真的是给力呢。先不说它强大的类库,面向对象或者其他的好处,单单是爬图这一块,就已经深深的吸引到了我,于是在我的摸索之下,人生中的第一次爬虫出现了。之所以写这篇文章,是因为想以此来纪念一下。等今后技术上进步了,回过头来看看自己走过的点点滴滴,出现的这诸多的问题,想必也是一种不错的体验吧。

好了,废话不多说。


目标网址

我的思路

思路上来说,很普通。

  • 先利用urllib把对应的网页给抓下来
  • 然后对网页进行解析,这里使用了re模块来进行正则表达式的匹配,我们需要的就是img标签而已
  • 再次的使用urllib将图片对应的那个url给download下来
  • 最后写入一张张图片
  • 至此,完结

细节上的实现

首先是一个下载网页的过程,这里我将其封装到了一个函数中

def getHtml(url):
    reload(sys)
    return urllib.urlopen(url).read()

然后是写入一个图片文件的过程,依然封装起来,如下:

def writeToFile(path,name,data):
    file = open(path+name,'wb')
    file.write(data)
    file.close()
    print name+" has been Writed Succeed!"

最为关键的就是使用正则表达式来匹配我需要的东西–图片,正则表达式的话,我们可以这么干,这里仅仅是针对于这篇。我们可以使用开发者工具看到如下:

正则表达式为r'src=(.+?\.jpg)'
下面我来详细的说明一下各个参数的含义:

  • r’ : 即可以忽略转义的影响,如果不写这个的话,我们需要对右斜线进行转义”\\”
  • src=”” : 这里就是一个匹配格式,就是包含有src=”“开头的数据
  • () : 匹配完成后返回的将是一个list,方便我们进行数据的提取
  • .+?.jpg : 就是匹配任意多个以.jpg结尾的数据,这里就是我们的图片了

好了,该做的都做好了,下面让我们看一看完整的代码吧

完整的代码

# coding:UTF-8

import urllib
import sys

import re
import os

def getHtml(url):
    reload(sys)
    return urllib.urlopen(url).read()

def writeToFile(path,name,data):
    file = open(path+name,'wb')
    file.write(data)
    file.close()
    print name+" has been Writed Succeed!"

#url = "http://www.10danteng.com/index/pages/id/11036/"
url = 'http://www.u148.net/article/55557.html'
page = getHtml(url)
reg =re.compile(str( r'src="(.+?\.jpg)"'))
images_url = re.findall(reg,page)

# 测试一下网址是否可达
#print images_url

# 测试一下网页是否正确的下载到了内容
#print content

name = 'me'
path = "F:\\pachong\\"
#writeToFile(path,str(name)+".jpg",content)
for i, item in enumerate(images_url):
    everypicture =  getHtml(item)
    writeToFile(path,str(i)+".jpg",everypicture)

最后看一下,爬到了什么

总结

代码还是很凌乱的,我应该把那个正则匹配的也封装起来的。这样方便代码的维护和减少重复代码。

通过这次的小案例,我学会了一些简单模块的使用,同时也对于Python有了一点入门的感觉了。Python就是一个人思想的代表。只要逻辑对了,顺着思路一步步的往下走。就一定可以成功完成的。另外,那就是遇到错误,不要放弃。要从错误中寻找解决的方法。

如果,你认为代码中有什么不正确的地方,或者想和本人探讨一下关于爬虫方面的问题,欢迎留言哦。

时间: 2024-10-12 06:56:11

记录第一次纯手打爬虫经历的相关文章

记录分享自己的整形经历

摘要: 医生医生!我单眼皮.凸额头.大小眼.矮鼻梁,还大饼脸,我还有救吗!!! 嗯,像你这种情况,我们推荐你回炉重铸呀... 开个小玩笑.要是真有哪位童鞋不幸中箭了,或许你 "医生医生!我单眼皮.凸额头.大小眼.矮鼻梁,还大饼脸,我还有救吗!!!" "嗯,像你这种情况,我们推荐你回炉重铸呀..." 开个小玩笑.要是真有哪位童鞋不幸中箭了,或许你可以试一试新氧. "新氧"是一个整形交流社区,用户可以使"新氧"分享自己的整形经历,

第一次领工资的经历

天气炎热,不出门一样可以http://www.aliyun.com/zixun/aggregation/1198.html">网购"逛街".只是随着购买量的增大,也产生烦恼,例如退换货手续麻烦.商品和图片上差异大.给个中评差评遭受店主的"报复"--网购纠纷维权,请大家说说自己的经验.来稿请发tangy@wxjt.com.cn,截稿时间为下周三. 每年七八月间,大批毕业生走上工作岗位.平生第一次领到工资,是件难忘的事,这才是真正长大成人,肩负起更多责任

我的第一次坏块故障恢复经历

前几天由于单位断电了,导致一台BK*应用的开发数据库环境无法open打开,本以为借助于advise/repair failure就可以实现恢复,中间还是费了不少周折. 这算是自己第一次处理稍微比较复杂的恢复问题,以前碰见的问题都是比较常规简单的,对于备份恢复来说,一直想找一个时间更系统的学习一下,这个问题处理的过程当中才发现这些基础理论的重要性,因此一些处理步骤上还是比较混乱的,思路并不是很清晰,胡子眉毛一把装,尝试了所有会用或能用的方法,虽然最后拉起了库,但按照惜分飞大师的说法,还是有一些幸运

python 爬虫教程

转载http://blog.csdn.net/freeking101/article/details/62893343 爬虫入门初级篇 IDE 选择 PyCharm(推荐).SublimeText3.VS2015.wingIDE 装python2还是python3 python社区需要很多年才能将现有的模块移植到支持python3. django web.py flask等还不支持python3.所以推荐安装python2 最新版. Windows 平台 从 http://python.org/

记一次当前工作目录问题的排查经历

最近在使用ClearCase的时候遇到一个问题,当从命令行里启动版本树,并想给一个节点打上review属性时,经常会出现一个命令窗口一闪而过,刷新版本树之后却没能找到想要打的review属性,只有再次尝试才会正确打上.大家忍受了这个问题很久,但一直都没时间去深入分析它.在连续几次遇到这情况之后,我觉得忍无可忍,下定决心解决它,最终找到了问题的根源并给出了解决方案,在这里详细记录一下这次排查的经历. 故事背景 我们使用的版本管理工具是ClearCase,一个集中式(相对于分布式的Git)的商业化配

【内幕】史上首个机器僧——龙泉寺贤二诞生全记录

天下极客出龙泉 贤二机器僧从龙泉寺诞生,也许有种必然的缘分. 在佛教历史上,龙泉寺可以说是很特殊的寺庙了.它的历史能追溯到辽代初年,一直默默伫立在京城西北角,没多少名气也没多少声响. 2005 年,来自福建的学诚大和尚(中国佛教协会会长.龙泉寺方丈)开始重建龙泉寺.重建工作得到了很多支持,法师和志工们一砖一瓦把新龙泉寺搭建起来. 早在搭建的时候,学诚大和尚就发愿说要建立僧俗共修的寺庙,不仅法师可以在此修行,对佛学感兴趣的信众们,也可以预约上山,作为志工学习佛法. 理念的开放,也让龙泉寺成为最早接

”我的2016“-太多难忘的第一次

时间如白驹过隙,一转眼就是2016年的最后一天.曾几何时,我还以我是"90"后程序自居,我引以为傲,曾几何时,"90"后还是IT职场的小鲜肉,当我发现"94","95"后程序出现时,"90"后已经快要变成IT职场的腊肉了,感慨时间就是这么快!本来昨晚有很强烈的冲动来小结这特别的一年,但现在我已不在是一个人,有人体谅不许熬夜,不然的话估计又是小结到凌晨了. 2016对我来说是特别的一年,有太多的难忘的第一次,

从买彩票的经历看网站优化

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 最近在朋友的带动下疯狂的迷上了买彩票,虽然网上每天都在爆发着中头等奖的新闻,但彩票与我而言不过是一时的娱乐,只要不沉迷,不会像赌博一样不可自拔,说不定最后还真能中个大奖呢.今天要和大家谈谈我从买彩票的经历中悟出的网站优化的道理,大家权且当做笑谈吧. 我最近迷上的一个是福彩双色球,双色球的玩法大家可以百度一下,我不是为了教大家如何玩这个游戏,而

JSP网站开发之HTML入门知识及常用标记符 (一)

        最近发生的事情很多,其中一件很重要的事情就是:学生生涯的结束,教学生涯的开始.我准备下个月写一篇总结研究生生涯的文章,包括自己放弃互联网选择回家教书.找工作经历.项目和毕业设计的各种感想.很荣幸XB七月初就给了我第一次大学教学的经历,很享受很珍惜也很感触.尤其是看到学生"秀璋,你好!"的跑马灯欢迎界面.发表"终于会编程了,感觉自己好牛逼"的说说.递给我餐巾纸.和你们打球等等.         言归正传,因为学生是大二升大三的,但是却没有学过网页相关知