今天复习使用Python来写爬虫程序,突然想写一篇关于爬取图片的文章,对网络上一些爬取图片的方式进行总结,也算是对自己学习成果的一个检验。
一、单张图片爬取
首先,我们来看一段代码,本段代码来自于北京理工大学的嵩天老师的MOOC,在这里我做简要的分析。
import requests
import os
url="http://image.nationalgeographic.com.cn/2018/0202/20180202050353876.jpg"
root="D://pics//"
path=root+url.split('/')[-1]
try:
if not os.path.exists(root):
os.mkdir(root)
if not os.path.exists(path):
r=requests.get(url)
with open(path,'wb') as f:
f.write(r.content)
f.close()
print("文件保存成功")
else:
print("文件已存在")
except:
print("爬取失败")
本段代码,使用了两个库,requests和os库,对于requests库相信大家都已经比较了解了,而对于OS库我也是第一次使用,因此在其他博主的博客上找了相关的资料,供大家参考。
清明-心若淡定OS库学习笔记
1、OS库的主要方法
- os.getcwd(): 获取当前目录
- os.name: 获取当前使用的操作系统
- os.remove: 删除指定文件
- os.removedirs(): 删除指定目录
- os.system(): 运行shell命令
- os.mkdir(): 创建一个新目录
- os.chdir():修改当前路径到指定路径
- os.lisdir():返回指定目录下的所有目录和文件
对于代码演示,大家可以到上述博客学习。而对于shell命令,可看博客龙昊雪shell命令。
2、OS.path模块
有关path模块这里简单介绍几种:
os.path.abspath(path):返回绝对路径
os.path.basename(path):返回文件名
os.path.getsize(path):返回文件大小
os.path.exists(path):路径存在返回True,路径损害返回False。嵩天老师的代码主要使用了本命令,来判断文件是否已经存在。
3、文件读写
文件读写的通用格式如下:
进行读操作时
with open('/path/to/file', 'r') as f:
print(f.read())
进行写操作时
with open('/Users/michael/test.txt', 'w') as f:
f.write('Hello, world!')
当然最后都不要忘记 f.close()。