Python3实现从网上抓取一张图片保存到本地

该博客展示了使用Python进行爬虫操作的代码。借助requests库获取图片链接内容,利用BytesIO处理二进制数据,最后通过PIL库的Image模块打开并保存图片到当前运行目录,实现了图片的下载功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
from io import BytesIO
from PIL import Image


r = requests.get('https://2.python-requests.org//zh_CN/latest/_static/requests-sidebar.png')

f = BytesIO(r.content)  # BytesIO,它是用来操作二进制数据的,图片就是二进制数据了

img = Image.open(f)

img.save('./requests-sidebar.png')  # 保存到当前运行目录下

 

Python中,你可以使用`pyonvif`库来处理ONVIF协议,并结合`schedule`库实现定时任务。以下是简单的步骤: 首先,你需要安装必要的库,如果尚未安装,可以使用pip进行安装: ```bash pip install pyonvif schedule requests Pillow ``` 然后,编写一个函数来连接到设备、获取图片保存本地: ```python import onvif from onvif.onvif import ONVIFCamera from PIL import Image import schedule import time def capture_image(device_ip, device_username, device_password): # 创建ONVIF相机实例 camera = ONVIFCamera(device_ip, device_username, device_password) # 登录到设备 with camera.create_session() as session: media_service = session.service.GetService('Media') image_proxy = media_service.create_proxy('Image') # 获取媒体数据源列表 media_sources = image_proxy.GetSources() # 找到合适的图像数据源(根据需要选择) for source in media_sources['Sources']: if 'still' in source['Profiles'][0]['StreamSetup']['Video'].keys(): image_profile = source['Profiles'][0] # 设置图像请求参数 request = image_proxy.GetStillImageByUri(image_profile['StreamSetup']['Video']['still']['url']) # 获取图片响应 response = request.GetResponse() # 解码图片保存 img_data = response.content img = Image.open(io.BytesIO(img_data)) timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S') # 格式化时间戳 img.save(f"image_{timestamp}.jpg", "JPEG") # 设定定时任务,这里以每分钟为例 schedule.every(1).minutes.do(capture_image, "your_device_ip", "your_device_username", "your_device_password") # 开始运行定时任务 while True: schedule.run_pending() time.sleep(1) ``` 请将`"your_device_ip"`、`"your_device_username"` 和 `"your_device_password"` 替换为你实际的ONVIF设备信息。 注意: 1. 这个示例假设设备支持ONVIF协议并且提供了视频流和静态图片抓取功能。 2. `schedule`库可能不适合长时间运行的任务,如果你需要更稳定的定时任务解决方案,考虑使用如`APScheduler`等替代。 3. 在部署此脚本前,确认设备是否允许远程访问以及防火墙设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值