Python网络爬虫小试刀——抓取ZOL桌面壁纸图片1
2015-12-28 14:47
1146 查看
第一次写爬虫类文章,初学Python小试牛刀,不足之处还请多多指教。也算是对自己技术的一点总结吧。
所用系统为Mac Os。使用item2编译运行。
总目标是抓取http://desk.zol.com.cn网站所有壁纸。
本篇目标:已知图片的url下载一张壁纸图片。
用到了urllib中的urllib.urlretrieve()这个函数
函数介绍如下:
参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
把url="http://b.zol-img.com.cn/desk/bizhi/image/7/960x600/1450950428732.jpg"的这张图片下载下来。
代码如下:
加一个print 'Done!'可以让item2告诉你已经结束了。
结果如下:
OK,比较简单。
下面将这个函数包装成一个下载图片的函数。
函数我们需要传进去的变量包括,url,图片名字。
so,函数大概是这个样子 def downloadImg(url, imgName):。
现在可以向函数里面填东西以达到我们的目的了。
雏形如下:
结果同上。
问题来了,如果我们想将图片下载到自己希望到路径怎么办?
函数还需要再加一个表示路径的变量savePath。
于是函数变成了这个样子def downloadImg(url, imgName, savePath):
然后函数里面加路径是否存在的判断,然后将下载好的图片的路径打印下来。
代码如下:
以后根据图片url下载图片就可以使用这个函数了。
the end
谢谢
下篇预告:将一个图片集的不定数目的图片全部下载到指定文件夹。
所用系统为Mac Os。使用item2编译运行。
总目标是抓取http://desk.zol.com.cn网站所有壁纸。
本篇目标:已知图片的url下载一张壁纸图片。
用到了urllib中的urllib.urlretrieve()这个函数
函数介绍如下:
>>>> help(urllib.urlretrieve) Help on function urlretrieve in module urllib:
urlretrieve(url, filename=None, reporthook=None, data=None)
参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
把url="http://b.zol-img.com.cn/desk/bizhi/image/7/960x600/1450950428732.jpg"的这张图片下载下来。
代码如下:
1 #/usr/bin/env python 2 3 import urllib 4 import os 5 6 url = 'http://b.zol-img.com.cn/desk/bizhi/image/7/960x600/1450950428732.jpg' 7 8 #img name 9 imgName = 'pic1.jpg' 10 11 urllib.urlretrieve(url, imgName) 12 13 print 'Done!' 14
加一个print 'Done!'可以让item2告诉你已经结束了。
结果如下:
OK,比较简单。
下面将这个函数包装成一个下载图片的函数。
函数我们需要传进去的变量包括,url,图片名字。
so,函数大概是这个样子 def downloadImg(url, imgName):。
现在可以向函数里面填东西以达到我们的目的了。
雏形如下:
1 #/usr/bin/env python 2 3 import urllib 4 import os 5 6 def downloadImg(url, imgName): 7 urllib.urlretrieve(url, imgName) 8 9 def main(): 10 url = 'http://b.zol-img.com.cn/desk/bizhi/image/7/960x600/1450950428732.jpg' 11 #img name4 12 imgName = 'pic1.jpg' 13 14 downloadImg(url, imgName) 15 16 if __name__ == '__main__': 17 main() 18
结果同上。
问题来了,如果我们想将图片下载到自己希望到路径怎么办?
函数还需要再加一个表示路径的变量savePath。
于是函数变成了这个样子def downloadImg(url, imgName, savePath):
然后函数里面加路径是否存在的判断,然后将下载好的图片的路径打印下来。
代码如下:
1 #/usr/bin/env python 2 3 import urllib 4 import os 5 6 def downloadImg(url, imgName, savePath): 7 if savePath == '': 8 return 'image save path is nil.' 9 if imgName == '': 10 return 'image is nil.' 11 if url == '': 12 return 'url is nil.' 13 14 if not os.path.exists(savePath): 15 os.makedirs(savePath) 16 if not savePath.endswith('/'): 17 savePath += '/' 18 19 savePathName = savePath + imgName 20 21 urllib.urlretrieve(url, savePathName) 22 23 print url 24 25 def main(): 26 url = 'http://b.zol-img.com.cn/desk/bizhi/image/7/960x600/1450950428732.jpg' 27 #img name4 28 imgName = 'pic1.jpg' 29 #img save path 30 savePath = os.getcwd() 31 32 downloadImg(url, imgName, savePath) 33 34 if __name__ == '__main__': 35 main() 36
以后根据图片url下载图片就可以使用这个函数了。
the end
谢谢
下篇预告:将一个图片集的不定数目的图片全部下载到指定文件夹。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- 爬虫笔记
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- LTE-物理信道及映射关系 http://gxw0099.blog.163.com/blog/static/59710262201401511204125/