import re #导入正则表达式模块 import requests #python HTTP客户端 编写爬虫和测试服务器经常用到的模块 import random #随机生成一个数,范围[0,1] import os def mkdir(path): # 判断路径是否存在 # 存在 True # 不存在 False isExists=os.path.exists(path) # 判断结果 if not isExists: os.makedirs(path) print (path+' 创建成功') return True else: # 如果目录存在则不创建,并提示目录已存在 print (path+' 目录已存在') return False #定义函数方法 def spiderPic(html,keyword): print('正在查找 ' + keyword +' 对应的图片,下载中,请稍后......') for addr in re.findall('"objURL":"(.*?)"',html,re.S): #查找URL print('正在爬取URL地址:'+str(addr)[0:30]+'...') #爬取的地址长度超过30时,用'...'代替后面的内容 try: pics = requests.get(addr,timeout=10) #请求URL时间(最大10秒) except requests.exceptions.ConnectionError: print('您当前请求的URL地址出现错误') continue creatDir = 'D:\数据\年龄性别\myPaData\woman\' + keyword mkdir(creatDir) fq = open(creatDir + '\' +(keyword+'_'+str(random.randrange(0,1000,4))+'.jpg'),'wb') #下载图片,并保存和命名 fq.write(pics.content) fq.close() #python的主方法 if __name__ == '__main__': #word = input('请输入你要搜索的图片关键字:') f = open("D:\数据\年龄性别\myPaData\woman.txt") s=f.read() s1 = re.split(' ', s) #利用正则函数进行分割 for word in s1: print (word) result = requests.get('http://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=' + word) spiderPic(result.text,word)