python实战项目 — 爬取 校花网图片
重点:
1. 指定路径创建文件夹,判断是否存在
2. 保存图片文件
# 获得校花网的地址,图片的链接 import re import requests import time import os start = time.time() num = 0 # 为了记录爬的照片的次数 # 设置路径 path = 'D:\校花网' # 判断目录下的文件夹是否已经创建,如果不存在 if not os.path.exists(path): # 则创建路径文件夹 os.makedirs(path) print("完成创建文件夹!") else: # 如果存在,则不需要创建 pass print('路径已经存在,不需要创建!') for url_name in range(5): response = requests.get(f'http://www.xiaohuar.com/list-1-{url_name}.html') # data就是我们要的校花F12里的东西啦,并用字符串格式保存 data = response.text print("正在解析处理第{}页 ".format(url_name)) # print(data) # 其中(.*?)表示我们所要获得的内容 one_list = re.findall('" src="(.*?)" />', data) # type str 这是为了让pycharm 更快的知道V是字符串格式方便导入内置方法 for v in range(len(one_list)): # 这是为了让其中有些保护的图片变成正确的超链接格式 if one_list[v].startswith('/d'): one_list[v] = f'http://www.xiaohuar.com/{one_list[v]}' for x in one_list: # 为了自动生成文件名,由于 one_list 网址有"/" 分割,最后的数据太长,所以名字也很长 # x 是链接 随机一条如: http://www.xiaohuar.com//d/file/20190818/a73a16dfeaf75bd16d2e355642e1e16e.jpg name = x.split('/')[-1] # 再次分析链接,获得图片的信息 dd = requests.get(x) # 图片信息装换成机械语言 d_data = dd.content with open(f'D:\校花网\{name}','wb') as fw: fw.write(d_data) # 强行把缓冲区中的内容放到磁盘中 fw.flush() num += 1 print(f'已经爬取{num}张') # 防止段时间请求过多 time.sleep(1) print("全部完成,耗时%d s"%(start - time.time()))