之前有个ppt密码忘记了,只记得6位纯数字的,能不能用python破解,公司文件,无法发外网,只有python一个途径,可有偿,感谢🙏🏻
1条回答 默认 最新
关注 【相关推荐】
- 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7598306
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:用Python快速将ppt制作成配音视频课件的方法
- 您还可以看一下 廖茂文老师的零基础Python自动化办公(漫画版)课程中的 [小实战]5秒完成250页电影PPT小节, 巩固相关知识点
- 除此之外, 这篇博客: python自动化办公之爬取HTML图片写入PPT实战中的 python自动化办公之批量图片导入PPT 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
昨天,大Boss找到一个网页,觉得里面的图片内容特别好,想把它下载下来作为学习资料,整理整理教导下属。但是,手动一张一张的保存图片太慢了,问我可不可以下载下来,最近也在研究Python爬取网页内容,就做了一把尝试。
首先,我们需要找到这个网页中对应的图片链接,这就涉及到了网页的一些相关知识,还好我前几年有自学过一部分内容,虽然不太会写网页,但是大概可以看得懂。
目标网址如下(没有打广告的意思哈):
https://mp.weixin.qq.com/s?__biz=MzI2NjMxMTgwNA==&mid=2247503649&idx=2&sn=f98042fc7a1e80d9b3a3b14ba50047fe&chksm=ea928e32dde507243cba9dc8458c44e28ffadbfaff49b2e1061b527f25dc1e501281acaed5bf&mpshare=1&scene=1&srcid=0108jtZHerwfrHzMEnGLuY5Q&sharer_sharetime=1610071043468&sharer_shareid=218968b0ce2ed380af2f846d290cab70&key=b02de42f9621dfdefa266d7ed7d32f5e25445d8ad3d7341a26941a655f6c9336c6d77fbcbddf3747d946691c97f08f33627ef448fc7edb745e4e2c64de50abfb7f1ed37ca71062c14dff71fa5c33bb250c0f3e7511e00878566dd7dcbfee1901cd7aba381eb519a16921c999a19efb4036454412286aa83735d575e8c4039d95&ascene=1&uin=MTcwNTU2ODMyMA%3D%3D&devicetype=Windows+7+x64&version=6300002f&lang=zh_CN&exportkey=AVXQF%2BRk3QjxiQi9zm0XxZE%3D&pass_ticket=P7%2BimS1i9He7sukQ6KlmLXpKdf9OqkU2xKCVwMV9zCxultcLh6%2BO9gto2piWKHIV&wx_header=0
**怎样查看网页对应的目标图片链接呢?**使用chrome浏览器打开上述网页,然后按F12,就会在右边看到这个网页的源代码,按照我下图的三步走,点击小箭头后,把鼠标移动到目标图片,悬浮即可,这个时候右边会高亮显示对应这个目标部分的网页源代码。就可以看到我用红色框框起来的部分,src后面引号的部分就是这个图片的链接。
(1)现在开始写代码,批量爬取图片。我们可以发现所有的图片都是src="",这个时候要使用正则表达式,匹配到所有的图片链接。以下为这一步的所有的代码:import urllib.request #导入request模块 url = "https://mp.weixin.qq.com/s?__biz=MzI2NjMxMTgwNA==&mid=2247503649&idx=2&sn=f98042fc7a1e80d9b3a3b14ba50047fe&chksm=ea928e32dde507243cba9dc8458c44e28ffadbfaff49b2e1061b527f25dc1e501281acaed5bf&mpshare=1&scene=1&srcid=0108jtZHerwfrHzMEnGLuY5Q&sharer_sharetime=1610071043468&sharer_shareid=218968b0ce2ed380af2f846d290cab70&key=b02de42f9621dfdefa266d7ed7d32f5e25445d8ad3d7341a26941a655f6c9336c6d77fbcbddf3747d946691c97f08f33627ef448fc7edb745e4e2c64de50abfb7f1ed37ca71062c14dff71fa5c33bb250c0f3e7511e00878566dd7dcbfee1901cd7aba381eb519a16921c999a19efb4036454412286aa83735d575e8c4039d95&ascene=1&uin=MTcwNTU2ODMyMA%3D%3D&devicetype=Windows+7+x64&version=6300002f&lang=zh_CN&exportkey=AVXQF%2BRk3QjxiQi9zm0XxZE%3D&pass_ticket=P7%2BimS1i9He7sukQ6KlmLXpKdf9OqkU2xKCVwMV9zCxultcLh6%2BO9gto2piWKHIV&wx_header=0" #指定url res = urllib.request.urlopen(url) #调用urlopen()从服务器获取响应界面 html = res.read().decode('utf-8') #对返回的响应数据解码,并赋值给html imagelist=re.findall('src="(.*?)"',html)
(2)把上面得到的html抓取到本地,存为图片。callbackfunc函数可以显示每张图片下载的百分比,可以看到下载进度情况如何。urllib.request.urlretrieve就是通过我们获取的图片链接urls,把它们下载保存到指定路径local。
import urllib def callbackfunc(blocknum, blocksize, totalsize): '''''回调函数 @blocknum: 已经下载的数据块 @blocksize: 数据块的大小 @totalsize: 远程文件的大小 ''' percent = 100.0 * blocknum * blocksize / totalsize if percent > 100: percent = 100 print( "%.2f%%"% percent ) i=0#用序号给图片命名 for urls in imagelist: print('Downloding:'+urls) i=i+1 if urls!='': local = '/root/data_warehouse/test/' +str(i)+ '.jpeg' urllib.request.urlretrieve(urls, local, callbackfunc)
运行结果示例:
(3)现在要把所有图片导入到PPT当中,我们需要下载安装第三方库python-pptx,这里直接使用Jupyternotebook。
!pip install python-pptx
安装成功如下所示:
(4)循环遍历刚才下载到本地的所有图片,创建一个PPT,将所有图片添加到其中,保存PPTfrom pptx import Presentation from pptx.util import Inches prs = Presentation() for i in range(3,101):#循环遍历所有图片 img_path = '/root/data_warehouse/test/'+str(i)+'.jpeg' #图片名称一定要对 blank_slide_layout = prs.slide_layouts[1] slide = prs.slides.add_slide(blank_slide_layout) left = top = Inches(0)#设置插入的位置 pic = slide.shapes.add_picture(img_path, left, top)#将图片添加到PPT prs.save('/root/data_warehouse/test/test.pptx')
以上的实现还有不足的地方,PPT不是16:9的样式,生成PPT后,把样式设置一下,然后调节一下图片大小。这个第三方库用到的都是Inches(英寸),关于图片的大小还没有设置到合适的大小。先把工作任务交差了,后面再慢慢学习完善!
**整理内容不易,走过路过觉得课程内容不错,请帮忙点赞、收藏!Thanks♪(・ω・)ノ****如需转载,请注明出处
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
- ¥15 uniapp的h5项目写一个抽奖动画
- ¥15 TeleScan不能修改bar
- ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
- ¥15 hadoop中启动hive报错如下怎么解决
- ¥15 如何优化QWebEngineView 加载url的速度
- ¥15 关于#hadoop#的问题,请各位专家解答!
- ¥15 如何批量抓取网站信息
- ¥15 Spring Boot离线人脸识别
- ¥15 使用Ant Design Pro vue的时候,使用环境变量的时候,构建报错是什么原因