本文主要是介绍在美桌下载某一个系列的图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.确定目标网页
2.发送请求
3.解析数据
4.保存数据
5.下载多张图片
1.确定目标网页,确定爬取的url路径,headers参数
url = 'http://www.win4000.com/wallpaper_detail_178645.html' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}
2.发送请求–requests 模拟浏览器发送请求 获取响应数据
response = requests.get(headers=headers, url=url)
print(response)
若响应为下图所示,则表示我们我们成功获取数据
3.解析数据
观察我们的网页,用正则表达式匹配获取图片的url
result = re.findall('<img class="pic-large" src="(.*?)" alt=".*" title=".*"/>', response.text, re.S)print(result)
因为图片是二进制数据,所以我们用content获取到该图片的数据
response_img = requests.get(result[0]).content
print(response_img)
用获取到的url最后面一段作为该图片的name。
file_name = result[0].split('/')[-1]
4.保存数据
保存数据到本地文件
with open('picture1_3\\' + file_name, mode='wb')as f:f.write(response_img)
此时图片就保存到本地文件了
5.下载多张图片
同时下载多张图片需要对比图片数据的差别,找到差别一起处理才能同时下载多张图片。
通过对比我们可以发现,这一系列的图片是通过该url最后一位数字进行变化的。然后我们可以通过循环的方式将图片一起下载。
下面是完整代码展示
import requests
import re
import osif not os.path.exists('picture1_3'):os.makedirs('picture1_3')for page in range(1, 8):url = 'http://www.win4000.com/wallpaper_detail_178645_{}.html'.format(page)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'}response = requests.get(headers=headers, url=url)# print(response)result = re.findall('<img class="pic-large" src="(.*?)" alt=".*" title=".*"/>', response.text, re.S)print(result)response_img = requests.get(result[0]).content# print(response_img)file_name = result[0].split('/')[-1]print(file_name)with open('picture1_3\\' + file_name, mode='wb')as f:f.write(response_img)print(file_name + '下载完成')
这篇关于在美桌下载某一个系列的图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!