从网页采集图片,生成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.com
@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 = Factory.create()
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 = requests.get("https://mp.weixin.qq.com/s/A0-RIvL0QttGgogNkPwmfw")
resposne.encoding="utf-8"
soup = BeautifulSoup(resposne.text,"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 + 1name = "pic{}".format(p_index)# 获取图片地址imgname = name + ".jpg"conteng = requests.get(img)# 图片二进制er = conteng.contentwith open(img_path + imgname, "wb") as file:print("正在下载图片 {}" .format(imgname))file.write(er)file.flush()# 创建一个空白pptppt = 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:passcontinueprs.save(ppt_file)# 如需保留图片,以下代码注释掉。
files= os.listdir(img_path)
if files:for k in files:print("正在删除图片 {}".format(k))os.remove(img_path + k)
从网页采集图片,生成PPT文件相关推荐
- 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址
昨天为大家介绍了如何采集图片/视频/资源文件后,有小伙伴问我如何采集他们的链接地址,今天小编就为大家演示如何采集图片/视频/资源文件的链接地址,操作如下: 第一步:新建任务 ①点击左上角"加 ...
- 使用PptxGenJS框架自定义模板生成PPT文件(1)
前序 因为业务要求需要使用自定义模板来生成PPT,但是查阅了大量的资料的发现目前后台的开发PPT框架不支持公司的业务: poi.去看了apachePOI官方文档可以发现并没有生成图片(chart)的方 ...
- Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)
系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...
- android pdfjet_GitHub - lnj721/PdfBuilder: Android端使用图片生成PDF文件
PdfBuilder Android端使用图片生成PDF文件 一.应用场景 从本地选择图片生成pdf文件,由于Android本身并没有对pdf的支持,这里选择使用一个第三方的库来达成需求. 二.库的选 ...
- 跨平台的开源Java生成PPT文件工具包,PPTShowV1.3更新啦
项目官网:https://pptshow.cc/ 参考文档:https://pptshow.cc/book/(GitPage制作,打不开请科学冲浪) 开源地址:https://github.com/q ...
- PPTShow:跨平台的开源Java生成PPT文件工具包
项目官网:https://pptshow.cc/ 参考文档:https://pptshow.cc/book/(GitPage制作,打不开请科学冲浪) 开源地址:https://github.com/q ...
- Android 如何加载网页、图片以及PDF文件之项目实战
这里对于App有需求需要做webView加载页面以及图片,pdf文件等,可以参考一下这篇文章: 我在做项目应用时,有个需求是把用户不同类型的数据上传到后台. 对于用户的数据大体分为以下类型: 图片(j ...
- 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址 1
2019独角兽企业重金招聘Python工程师标准>>> 以昵图网的美食海报为例,采集所有图片图片: 第一步:新建任务 ①点击左上角"加号"新建任务,如图1: [图 ...
- 前嗅ForeSpider采集:采集图片/视频/资源文件
第一步:新建任务 ①点击左上角"加号"新建任务,如图1: [图1] ② 弹窗里填写采集地址,任务名称如图2: [图2] ③点击下一步,选择进行数据抽取还是链接抽取,本次采集所有页面 ...
最新文章
- Js获取宽高度的归纳总结
- 28.构造函数中,成员变量一定要通过初始化列表来初始化的?
- macbook不能进系统 备份数据_外卖骑手,困在系统里;绩效考核与奖惩激励,不能困在数据里...
- nginx $document_uri 参数使用
- 数据结构与算法之栈入门题目
- 【转】使用Navicat for Oracle新建表空间、用户及权限赋予
- PHP进程1608占用了9012,swoole (ERRNO 9012): worker exit timeout, forced to terminate
- 2017计算机等级考试试题,2017年计算机二级考试练习题及答案
- c语言加法结合性,C语言 运算符 的结合性 怎么理解?求举例子详细解答!!
- 18100出多少取整_关于JavaScript数据类型,你知道多少?
- 微商团队长的五条管理心法
- ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating
- RHEL6.3基本网络配置(4) 其它常用网络配置文件
- 今日头条android+x86,GitHub - teajoyus/TouTiao: 今日头条 For Android
- HbuilderX 2.6.15 版本说明
- 【SpringBoot】62、SpringBoot中接入xxl-job实现分布式任务调度
- 打开html文件网页崩溃,浏览器打开就崩溃,浏览器页面打不开
- 使用Perfmon和PAL工具查看Server性能--PerfMon入门指南
- 解决引用百度地图点击详情无法定位到相应位置问题
- 2021年一战南大AI上岸经验贴
热门文章
- SAP HR 考勤 PT60执行时报错“在$无工作中心数据 YYYY.MM.DD”问题解决<转载>
- vscode git拉下来后LF CRLF问题
- 使用云数据库,国庆快速开发一个微信小程序
- 仿天天动听5应用项目源码
- Unity中更换鼠标的图标
- mysql 星 拓扑_mysql数据库常用拓扑结构
- Telerik DevCraft crack,改进了 PDF 处理
- 点餐系统架构模型_微信点餐系统的系统结构是由哪些功能模块组成呢?
- MySQL 创建表 CREATE TABLE 语法
- table表格信息过长显示省略,悬停显示详细信息;表格添加细边框