一、引入
不知各位开发者们有没有发现:在微软必应网页中每天都会更新出好看的图片呢?
是的,这些图片是专业摄影师在现场拍摄得来的,当然好看啦!
(图片来源于微软必应网站)
而你每次下载这些图片时是否觉得很麻烦呢?别担心,我这就教你解决的办法!
在这期博文,我将会带各位学习Python爬虫技术,用来爬取必应网页好图!
二、教学
这里的注释非常详细,看它就能学会,有什么不会的欢迎可以加我QQ ( 3476845984 ) 答疑哦!
参考代码:
# 导入requests库,这是一个用于发送HTTP请求的Python库
import requests
# 指定Bing网站的链接
bing_url = 'https://cn.bing.com'
# 构造Bing每日背景图片的API链接
api_url = bing_url + '/HPImageArchive.aspx?format=js&idx=0&n=8'
# 定义函数get_image_list,用于从Bing API获取图片列表
def get_image_list():
# 初始化一个空列表来存储图片URL
image_urls = []
# 发送GET请求到Bing API
response = requests.get(api_url)
# 解析返回的JSON数据
json_data = response.json()
# 从JSON数据中提取图片信息,并返回
return json_data['images']
# 定义函数get_images,用于从图片列表中获取图片的详细内容
def get_images(image_list):
# 初始化一个空列表来存储图片内容和相关数据
images = []
# 遍历图片列表
for image_data in image_list:
# 构造完整的图片URL
image_url = bing_url + image_data['url']
# 发送GET请求到图片URL
response = requests.get(image_url)
# 获取图片内容
image_content = response.content
# 构造一个字典,包含图片内容和图片的其他相关数据(如结束日期)
image = {
'content':image_content,
'data':image_data['enddate']
}
# 将图片添加到列表中
images.append(image)
# 返回包含图片内容和相关数据的列表
return images
# 定义函数save_images,用于保存图片到本地
def save_images(images):
# 初始化一个空列表来存储保存的图片文件路径
images_files = []
# 遍历图片列表
for nth, image in enumerate(images, start=1):
# 构造图片保存的文件名,这里使用图片的结束日期作为文件名
image_path = '%s.jpg' % image['data']
# 打开文件,准备写入图片内容
with open(image_path,'wb') as f:
f.write(image['content'])
# 将保存的图片文件路径添加到列表中
images_files.append(image_path)
# 返回包含所有保存图片文件路径的列表
return images_files
# 定义函数download_bing_images,用于下载Bing的每日背景图片
def download_bing_images():
# 调用上述函数,首先获取图片列表
image_list = get_image_list()
# 然后获取图片的详细内容
images = get_images(image_list)
# 最后保存图片到本地
return save_images(images)
# 调用download_bing_images函数,并打印保存的图片文件路径
print(download_bing_images())
将代码复制并粘贴到编辑器里,然后点击运行即可将近期必应网站的好图爬取到此py文件的相同目录里辣!( 别频繁运行,否则会影响网站正常运营,要赔马内或者踩缝纫机的! )
三、相关法规
你必须仔细看完这段,否则踩缝纫机的时候千万别怪我没说哦!
在网站爬取的图片只可以自己使用,绝对不可以进行转裁哦,否则可能会侵犯网站版权!如果你使用图片的过程中存在侵权行为,那你需要承担相关法律责任,甚至是刑事责任!
那么,怎样才能确定网站的图片是否允许爬取呢?我这就与你细细道来!
几乎所有网站都会在根目录里放版权申明的文本文档,也就是名为“robots.txt”文件!
这是访问robot协议的方法:在站点url后输入“/robots.txt”,然后回车即可。
这样我们就可以访问网站的robot协议啦!↓
那么怎么判断robot协议表达的意思呢?这里推荐参考这篇文章哦!
python爬虫基础(十)分析Robots协议_如何查看网站爬虫协议-CSDN博客
这位看官!你要是觉得有帮助就给我三连 ( 点赞·收藏·关注 ) 吧!