实战项目 — 爬取 校花网图片
程序员文章站
2022-07-04 17:49:57
重点: 1. 指定路径创建文件夹,判断是否存在 2. 保存图片文件 ......
重点:
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="(.*?)" /></a>', 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()))