我的网站打不开了,做网站会什么问题,注册公司网上申请入口网站,品牌设计分为几部分要实现从网站上下载图片#xff0c;并压缩发送到指定邮箱中#xff0c;可以按下面步骤进行编程。
一、从网络上下载图片#xff1a;
这里我们使用requests 模块#xff0c;requests 模块是一个非常流行的 HTTP 库#xff0c;用于发送各种 HTTP 请求。
1、安装
pip ins…要实现从网站上下载图片并压缩发送到指定邮箱中可以按下面步骤进行编程。
一、从网络上下载图片
这里我们使用requests 模块requests 模块是一个非常流行的 HTTP 库用于发送各种 HTTP 请求。
1、安装
pip install requests2、编写下载图片函数
import requestsdef download_picture(path, url):下载图片filename url[url.rfind(/) 1:]resp requests.get(url)with open(f{path}{filename}, wb) as file:file.write(resp.content)二、归档压缩文件
要实现归档压缩文件我们可以使用shutil 模块。
shutil 模块是一个高级的文件、文件夹、压缩包处理模块。它提供了许多易于使用的函数用于文件的复制、移动、删除以及目录文件夹的创建、复制、移动、删除等。此外它还支持文件的归档和压缩功能。shutil 模块是 Python 标准库里面的模块所以我们无需安装库就可以直接引用。
这里我编写了一个main函数实现使用步骤1编写的函数download_picture在360网站下载图片数据并调用shutil 模块中的make_archive函数进行压缩具体实现如下
def main():# 如果指定文件夹不存在就创建文件夹if not os.path.exists(Resources/image):os.makedirs(Resources/image)# 通过image360网站的接口获取Json数据resp requests.get(https://image.so.com/zjl?sn0chcopyrightt130)picture_list resp.json()[list]for picture_dict in picture_list:picture_url picture_dict[qhimg_url]download_picture(Resources/image/, picture_url)# 生成归档文件带压缩shutil.make_archive(Resources/yasuo, zip, Resources/image)到此我们基本完成了大部分工作就剩下把文件发送到指定邮箱了。
具体发送邮箱实现可以参考https://blog.csdn.net/mr_five55/article/details/140747709
三、发送文件到指定邮箱
这里根据上面的参考案例我优化和封装了下发送邮箱的方法以便可以方便快捷发送步骤二中的压缩文件具体实现如下
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipartfrom urllib.parse import quotesender_email your_emailexample.com
sender_password your_email_password_or_app_passwordsmtp_server smtp.163.com
smtp_port 465def send_mail(receiver_email, receiver_name, receiver_theme, content, filenames[]):发送邮件email MIMEMultipart()email[From] sender_emailemail[To] ;.join(receiver_name)email[Subject] receiver_thememessage MIMEText(content, plain, utf-8)email.attach(message)for filename in filenames:with open(filename, rb) as file:pos filename.rfind(/)display_filename filename[pos 1:] if pos 0 else filenamedisplay_filename quote(display_filename)attachment MIMEText(file.read(), base64, utf-8)attachment[content-type] application/octet-streamattachment[content-disposition] fattachment; filename{display_filename}email.attach(attachment)try:server smtplib.SMTP_SSL(smtp_server, smtp_port)server.login(sender_email, sender_password)server.sendmail(sender_email, [receiver_email], email.as_string())server.quit()print(邮件发送成功)except smtplib.SMTPException as e:print(邮件发送失败:, e)
最后我们再调用以上发送邮件方法即可发送我们在网络下载并压缩的文件了
send_mail(receiver_emailexample.com, 我, 资源分享, 附件有下载内容请查收, [Resources/yasuo.zip])