从⽹页采集图⽚,⽣成PPT⽂件
家⾥领导下了⼀个任务,把⼀个⽹页转成PPT。⽹页上有⼏⼗个图⽚,转成PPT,每个页⾯⼀个图⽚。说要是做的好,以后还有类似的⽹页要转。作为新时代的码农,总不能⽤CTRL+C 和 CTRL+V解决嘛。
先分析⽹页。图⽚代码如下:
到下载链接。
上bs4 和 pptx库,当然少不了 Faker
import requests
from bs4 import BeautifulSoup
from pptx import Presentation
from pptx.util import Inches
import os
from faker import Factory
本段代码只适合爬取1页图⽚,如那种多页的,需要做判断,循环完成。
# encoding: utf-8
"""
@author: 陈年椰⼦
@contact: hndm@qq
@version: 1.0
@project:test
@file: web2ppt.py
@time: 2021-7-5 11:11
说明
从⽹页采集图⽚,⽣成PPT
"""
import requests
from bs4 import BeautifulSoup
from pptx import Presentation
from pptx.util import Inches
import os
from faker import Factory
# ⽣成user-agent
fc = ate()
header = {
"User-Agent": fc.user_agent()
}
# 图⽚缓存⽬录
img_path = "D:\\temp\\IMG\\"
# PPT⽂件
ppt_file = "D:\\temp\\ppt1.ppt"
#创建ppt
prs = Presentation()
#图⽚放置位置
left, top, width, height = Inches(1), Inches(0.5), Inches(8), Inches(6)
# 采集代码
# 采集代码
resposne = ("mp.weixin.qq/s/A0-RIvL0QttGgogNkPwmfw") ding="utf-8"
soup = ,"lxml")
a = soup.find_all("img")
print("下载图⽚" , len(a))
p_index = 0
for j in a:
# print(j)
try:
# 注意分析你要采集的页⾯,图⽚下载链接
img = j['data-src']
p_index = p_index + 1
name = "pic{}".format(p_index)
# 获取图⽚地址
imgname = name + ".jpg"
conteng = (img)
# 图⽚⼆进制
er = t
with open(img_path + imgname, "wb") as file:
print("正在下载图⽚ {}" .format(imgname))
file.write(er)
file.flush()
# 创建⼀个空⽩ppt
ppt = prs.slide_layouts[6]
# 添加到ppt中
ppts = prs.slides.add_slide(ppt)
# 空⽩ppt添加下载的图⽚
pic = ppts.shapes.add_picture(img_path + imgname, left, top, width, height) except:
pass
continue
prs.save(ppt_file)
# 如需保留图⽚,以下代码注释掉。
如何制作网页文件
files= os.listdir(img_path)
if files:
for k in files:
print("正在删除图⽚ {}".format(k))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论