目标
/search-image/fengjing/中的图片
过程分析
网页分析
这次爬取的比较简单,要爬取的内容很容易就找到了。
换页
图片内容点击下一页,看到网址变成/search-image/fengjing/?page=2了;很明显,page变了,换页利用这一点就可以实现。
保存在文件夹内爬取图片链接读取内容:
picture_content = requests.get(i).content
为每一页创建一个文件夹,利用变量k来表示当前页数(当前循环)。
首先判断当前目录下是否存在同名文件:
isExists = os.path.exists('风景' + str(k)) # 判断文件夹是否存在
如若不存在则创建:
if not isExists:os.mkdir('风景' + str(k)) # 不存在便创建
进入创建的文件夹:
os.chdir('D:\code\图片爬虫\风景' + str(k)) # 进入新建文件夹
爬取结束后,还需返回上层文件,否则会在创建的文件夹下继续工作了。
os.chdir('D:\code\图片爬虫') # 返回上层文件夹,根据自己的路径修改
完整代码
import requestsimport reimport osurl = '/' # 图片首址target = 'search-image/fengjing/?page=' # 第一页(可以看出search-image是搜索模块,fengjing是搜索内容,page即为结果页数headers = {'User - Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'} # 设置头,浏览器代码for k in range(1, 4): # 爬取1-3页url1 = url + target + str(k)print('当前爬取网页:' + url1)html = requests.get(url1, headers=headers).text # 获取网页内容pattern = pile('<img alt="风景图片素材_图片ID:.*?" src="(.*?)"/>')picture = pattern.findall(html) # 获取图片链接# print(picture)pattern1 = pile('<img alt="风景图片素材_图片ID:(.*?)" src=".*?"/>')picture_name = pattern1.findall(html) # 获取图片名称# print(picture_name)isExists = os.path.exists('风景' + str(k)) # 判断文件夹是否存在if not isExists:os.mkdir('风景' + str(k)) # 不存在便创建print('文件夹“风景' + str(k) + '”创建成功')else:passos.chdir('D:\code\图片爬虫\风景' + str(k)) # 进入新建文件夹for i, j in zip(picture, picture_name): # 要点:同时遍历两个list,用zip的方法filename = j + '.jpg' # 创建jpg文件并命名为当前获取的picture_namepicture_content = requests.get(i).content # 获取图片内容with open(filename, 'wb') as f: # 保存f.write(picture_content) # 写入内容print('图片' + j + '保存成功')print('the img is :' + i)f.close()os.chdir('D:\code\图片爬虫') # 返回上层文件夹,根据自己的路径修改
如果觉得有用请多多支持,谢谢!