制作少年电子相册,用歌曲少年制作电子相册

首页 > 经验 > 作者:YD1662022-11-09 12:47:11

背景:

由于我校六年级即将毕业,领导要求做一个电子相册,把学生在校这几年的学习、生活记录下来,留作纪念,但是这些图片大部分都在美篇上,领导让都下载下来!

于是,不明真相的我,开始了“图片另存为”的操作,一阵操作后,腰酸背痛脖子胀!才发现平均每个美篇都有几十张图片,有十几个美篇!这都是重复劳动啊。。。。。怎么办!

正路

由于我最近正在自学python爬虫,业界好像有句这样的话这样说 “理论上,一切重复劳动都可以程序化”

于是我就有了想法,可不可以一键下载所有图片呢?就有了下文。

搞起来

import requests

import os

from lxml import etree

# 获取网页

def get_data(url):

headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/80.0.3987.122 Safari/537.36'

}

response = requests.get(url, headers=headers)

image_msg = response.content.decode('utf-8')

return image_msg

# 解析网页

def parse_data(image_msg):

HTML = etree.HTML(image_msg)

result = html.xpath(

'//div[contains(@class,"content-container")]/div/div[contains(@class,img-box)]/img/@show-img'

)

return result

def create_path(image_msg):

base_dir = os.path.dirname(__file__)

# 文件夹名是美篇名

html = etree.HTML(image_msg)

dir_name = html.xpath('//div[contains(@class,"box")]/span[@id="title"]/text()')[0].strip()

dir_path = os.path.join(

base_dir, dir_name

)

return dir_path

def save_img(dir_path, result):

# 路径不存在,创建文件夹,并保存照片

if not os.path.exists(dir_path):

os.mkdir(dir_path)

n = 1

for image in result:

# 创建文件名

image_path = os.path.join(

dir_path, f'{n}.jpg'

)

headers = {

'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'

}

response = requests.get(image, headers=headers)

image_msg = response.content

print(f'正在下载第{n}张图片·····')

with open(image_path, mode='wb')as f:

f.write(image_msg)

n = 1

print(f'下载完毕!!共{n - 1}张!')

def run():

while True:

print("""

************美篇下载器***************

作者:威猛小郭

版本:1.0

说明:用浏览器打开美篇,复制地址栏的一大坨网址,粘贴到黑黑的界面上,一个回车就好了!

注意:可能会报病毒,把360等等的关了就行,少年不要担心,俺不会写病毒类!哈哈

*************END**********************

""")

url = input('请输入要下载的美篇地址(输入q退出程序!):').strip()

if url.lower() == 'q':

break

try:

image_html = get_data(url)

result = parse_data(image_html)

dir_path = create_path(image_html)

save_img(dir_path, result)

except Exception:

print('看看是不是把网址输错了,重新试试吧!')

if __name__ == '__main__':

run()

制作少年电子相册,用歌曲少年制作电子相册(1)

额,代码写的有点烂,不过问题解决了,刚开始学,大牛不要笑话俺,俺目前的水平只能写成这样了,我再继续努力优化!

其实写完以后很有成就感的,省了大量工作量!正好我的一个同事也有这需求,我就把程序打包成EXE文件,发给他了,收到了对方的大赞,此时此刻我的内心是非常幸福的。也更加坚定了我继续学下去的决心!

在工作之余学习了技术,解决了实际问题,并且还帮助了别人。或许小小的幸福就这么简单吧!
我是一名喜欢编程,喜欢折腾的小学体育老师,希望通过自己的学习解决工作中的一些实际问题!让一些重复的劳动不再困扰老师的工作,前路很长,给自己加油!

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.