家里领导下了一个任务,把一个网页转成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文件相关推荐

  1. 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址

    昨天为大家介绍了如何采集图片/视频/资源文件后,有小伙伴问我如何采集他们的链接地址,今天小编就为大家演示如何采集图片/视频/资源文件的链接地址,操作如下: 第一步:新建任务 ①点击左上角"加 ...

  2. 使用PptxGenJS框架自定义模板生成PPT文件(1)

    前序 因为业务要求需要使用自定义模板来生成PPT,但是查阅了大量的资料的发现目前后台的开发PPT框架不支持公司的业务: poi.去看了apachePOI官方文档可以发现并没有生成图片(chart)的方 ...

  3. Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  4. android pdfjet_GitHub - lnj721/PdfBuilder: Android端使用图片生成PDF文件

    PdfBuilder Android端使用图片生成PDF文件 一.应用场景 从本地选择图片生成pdf文件,由于Android本身并没有对pdf的支持,这里选择使用一个第三方的库来达成需求. 二.库的选 ...

  5. 跨平台的开源Java生成PPT文件工具包,PPTShowV1.3更新啦

    项目官网:https://pptshow.cc/ 参考文档:https://pptshow.cc/book/(GitPage制作,打不开请科学冲浪) 开源地址:https://github.com/q ...

  6. PPTShow:跨平台的开源Java生成PPT文件工具包

    项目官网:https://pptshow.cc/ 参考文档:https://pptshow.cc/book/(GitPage制作,打不开请科学冲浪) 开源地址:https://github.com/q ...

  7. Android 如何加载网页、图片以及PDF文件之项目实战

    这里对于App有需求需要做webView加载页面以及图片,pdf文件等,可以参考一下这篇文章: 我在做项目应用时,有个需求是把用户不同类型的数据上传到后台. 对于用户的数据大体分为以下类型: 图片(j ...

  8. 前嗅ForeSpider教程:采集图片/视频/资源文件的链接地址 1

    2019独角兽企业重金招聘Python工程师标准>>> 以昵图网的美食海报为例,采集所有图片图片: 第一步:新建任务 ①点击左上角"加号"新建任务,如图1: [图 ...

  9. 前嗅ForeSpider采集:采集图片/视频/资源文件

    第一步:新建任务 ①点击左上角"加号"新建任务,如图1: [图1] ② 弹窗里填写采集地址,任务名称如图2: [图2] ③点击下一步,选择进行数据抽取还是链接抽取,本次采集所有页面 ...

最新文章

  1. Js获取宽高度的归纳总结
  2. 28.构造函数中,成员变量一定要通过初始化列表来初始化的?
  3. macbook不能进系统 备份数据_外卖骑手,困在系统里;绩效考核与奖惩激励,不能困在数据里...
  4. nginx $document_uri 参数使用
  5. 数据结构与算法之栈入门题目
  6. 【转】使用Navicat for Oracle新建表空间、用户及权限赋予
  7. PHP进程1608占用了9012,swoole (ERRNO 9012): worker exit timeout, forced to terminate
  8. 2017计算机等级考试试题,2017年计算机二级考试练习题及答案
  9. c语言加法结合性,C语言 运算符 的结合性 怎么理解?求举例子详细解答!!
  10. 18100出多少取整_关于JavaScript数据类型,你知道多少?
  11. 微商团队长的五条管理心法
  12. ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating
  13. RHEL6.3基本网络配置(4) 其它常用网络配置文件
  14. 今日头条android+x86,GitHub - teajoyus/TouTiao: 今日头条 For Android
  15. HbuilderX 2.6.15 版本说明
  16. 【SpringBoot】62、SpringBoot中接入xxl-job实现分布式任务调度
  17. 打开html文件网页崩溃,浏览器打开就崩溃,浏览器页面打不开
  18. 使用Perfmon和PAL工具查看Server性能--PerfMon入门指南
  19. 解决引用百度地图点击详情无法定位到相应位置问题
  20. 2021年一战南大AI上岸经验贴

热门文章

  1. SAP HR 考勤 PT60执行时报错“在$无工作中心数据 YYYY.MM.DD”问题解决<转载>
  2. vscode git拉下来后LF CRLF问题
  3. 使用云数据库,国庆快速开发一个微信小程序
  4. 仿天天动听5应用项目源码
  5. Unity中更换鼠标的图标
  6. mysql 星 拓扑_mysql数据库常用拓扑结构
  7. Telerik DevCraft crack,改进了 PDF 处理
  8. 点餐系统架构模型_微信点餐系统的系统结构是由哪些功能模块组成呢?
  9. MySQL 创建表 CREATE TABLE 语法
  10. table表格信息过长显示省略,悬停显示详细信息;表格添加细边框