Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >从Slideshare.net 下载Slide的方法:

从Slideshare.net 下载Slide的方法:

作者头像
Enjoy233
发布于 2019-03-05 02:45:36
发布于 2019-03-05 02:45:36
12K00
代码可运行
举报
运行总次数:0
代码可运行

从Slideshare.net 下载Slide的方法

    Slideshare.net上有很多不错的Slide都没有提供下载链接,平常倒也无所谓,都是收藏后直接在线观看的。

    这段时间对ZARA的商业模式很感兴趣,相关的文档较少,刚好在Slideshare上有几个关于ZARA不错的Slides,而且都没有提供下载,需要保存到本地以供好好研究,于是研究了一下从Slideshare下载Slide的方法。

1、在线视频站点的FLV文件下载方法

    对于像Youtube、优酷这样采用Flash技术的视频网站,要下载其FLV文件,有如下几种方法:

    1)、使用Firefox 的Video DownloadhelperSothink SWF Catcher 这样的插件下载

    2)、使用第三方的下载工具,诸如Orbit Grab++、维棠FLV视频下载软件、UUme FLV Spy、网络嗅探器(影音神探)等

    3)、使用一些专门提供解析流行的视频网站下载地址的服务,例如downflv.comflvcd.com

    以上方案都有其局限性,只适合或服务软件支持的一些网站,因此也很少使用。

    4)、使用Live HTTP Headers、Firebug、Wireshark、Sniffer、URL Snooper这样的抓包器抓包,获得FLV的实际下载地址,然后直接用下载工具下载

    5)、利用浏览器的临时文件夹。在通过浏览器观看视频、观看图片的时候,视频文件及图片等已经下载到浏览器的临时文件夹里了,因此可以到浏览器的临时文件夹中直接查找对应的视频即可。

      IE浏览器临时文件夹:工具->Internet选项->常规->Internet临时文件->设置->查看文件

      Firefox临时文件夹:about:cache->Disk cache device->List Cache Entries->CTRL+F查找

   以上两种方案基本上能够通吃所有的视频网站,只是相对麻烦一点。

2、Slideshare的SWF文件下载方法

    尽管Slideshare也是采用Flash技术来实现Slide展示,但与Youtube、Youku这样的视频网站不同的是,其每一个幻灯片都是独立的Flash的SWF文件,并不是FLV格式的Flash Video文件,而且近期似乎Slideshare对SWF的地址也进行了特殊处理,直接用方法4的抓包器进行抓包,并不能获得SWF文件实际的下载地址。

    例如,我要下载ZARA:Fast Fashion的SWF文件,可以有如下几种方法

    1)、清除Firefox的隐私数据,在浏览器浏览完所有的幻灯片,然后到浏览器的临时文件夹中查找对应的SWF文件。此种方案适合幻灯片较少的情况,如果幻灯片有上百页,考虑到slideshare上经常出现始终“Loading…”的情况,在线观看能否看完以及看完后查找都是一个大问题。

    2)、清除Firefox的隐私数据,访问要下载的幻灯片(只需要到初始页,不需要浏览所有的幻灯片),然后到浏览器的临时文件夹中查找对应的类似“SLIDE_NAME.xml”这样的xml文件的路径,其中SLIDE_NAME大致为幻灯片的名称,例如ZARA:Fast Fashion对应的为http://cdn.slideshare.net/zara2820.xml?1188219016 ,此xml文件实际上就是幻灯片对应的所有的SWF文件的下载地址,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Show Id="98359"> 
<Slide Src="https://s3.amazonaws.com:443/slideshare/zara2820-slide-1.swf"/> 
<Slide Src="https://s3.amazonaws.com:443/slideshare/zara2820-slide-2.swf"/> 
<Slide Src="https://s3.amazonaws.com:443/slideshare/zara2820-slide-3.swf"/><Slide Src="https://s3.amazonaws.com:443/slideshare/zara2820-slide-23.swf"/> 
<Slide Src="https://s3.amazonaws.com:443/slideshare/zara2820-slide-24.swf"/> 
</Show>

    然后用Orbit、迅雷这样的下载工具的批量下载功能直接下载这些文件到指定的文件夹。

   另外:

    其实在Slideshare没有改变SWF的处理方式前,像Slideshare DOWNLOADerGreasmonkey Script还是挺方便的。

    可以参考:

Download Slides from SlideShare.net – Firefox Add-on

Download from SlideShare – slideshare DOWNLOAD dot com

3、Slideshare的SWF文件转化为PDF幻灯片

    目前尚未找到好的工具能够直接把Slideshare的SWF文件直接转化为ppt或pdf的幻灯片文件,像Flash搅拌器这样的工具其实也很难用。

    目前采用如下的方法:

    1)、安装Acrobat Professional 8。

        注意是Acrobat Professional ,不是Acrobat Reader;以前的Acrobat版本也行,只不过Acroabt 8对于合并多个PDF文件较为方便。

    2)、Acrobat安装完成后,缺省在控制面板的“打印机和传真”中创建了“Adobe PDF”的虚拟打印机,设置“Adobe PDF”的属性:

    “Adobe PDF属性->打印首选项->布局->方向”:设置为横向     “Adobe PDF属性->打印首选项->Adobe PDF设置->Adobe PDF页面大小”:设置为Slide 7.5 x 10

    3)、将下载SWF文件直接拖到浏览器中,然后右键->打印->常规->选中Adobe PDF为打印设备->打印

    4)、使用Acrobat 8的合并文件功能,合并所有的pdf文件

    这样就得到了SWF文件对应的PDF格式的幻灯片。

Slideshare PPT下载shell脚本

    以前总结过在slideshare上下载文件的方法(参考:从Slideshare.net 下载Slide的方法) ,只不过以上下载操作都需要手工操作,极其不人性化。尤其是在将swf格式的文件转化为pdf格式时候,要手动对一个几十页的ppt执行以上操作不累死人才怪,因此方法归方法,我自己都不怎么使用。   

Slideshare Downloader是一个shell脚本,能自动下载slideshare上不提供下载功能的ppt并保存为pdf格式的文档。只不过在本机的Redhat Enterprise Server 5.3上试了一下,发现脚本有些问题。

    1、Slideshare Downloader用于解码swf文件的swfdec包在Redhat Enterprise Server上安装很麻烦,依赖一大堆包,捣腾了半天都未搞定,于是放弃掉使用swfdec。

        swfdec项目似乎从08年依赖就未更新过了,其官方wiki http://swfdec.freedesktop.org  也许久未维护了,登录进去全是灌水的广告帖子,刚开始还以为走错地方了。

swfdec的安装指南

swfdec的代码下载地址

   2、Slideshare Downloader直接用imagemagick的convert命令将多个png文件转化为一个pdf文件,测试了一下似乎不行。按照imagemagick 官方帮助的说明,多个png格式的文件不能直接使用convert命令合并成一个pdf文件     

    However, some formats, such as JPEG and PNG, do not support more than one image per file, and in that case ImageMagick is forced to write each image as a separate file.  imagemagick adjoin帮助

   3、Slideshare Downloader脚本应该是在UbuntuDebian系列的环境上测试的,在Redhat 下一些命令的语法似乎有问题

      在处理BASH_REMATCH 时候, RedHat 要加“”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    if [[ "$DOCID" =~ "([a-z0-9-]+)$"  ]]
    then
        DOCID=${BASH_REMATCH[0]}
    else
        echo $DOCID
        exit 1
    fi

       在Redhat下sort命令无-V参数

     基于以上几个原因,为方便自己使用,对Slideshare Downloader脚本进行了调整,测试了几个文档,应该还行。需要安装swftoolspdftkimagemagick

    大致的方法:

    1、使用wget -q –O 获得指定url地址文档的所有swf文件的实际地址并下载

    2、使用swftools的swfrender命令将swf文件转为png格式的文件

    3、使用imagemagick的convert  +adjoin 将png格式的每个文件都转化为对应的单个pdf文件。

    4、使用pdftk将多个pdf文件合并成一个pdf文件

     在合并多个pdf文件为一个pdf文件时候,由于需要按照页面顺序合并,因此使用了sort -k1.3

      PDFS=`ls *.pdf | sort -k1.3 `

   调整过的代码(只在Redhat 上做了测试,且对代码未做优化):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

# Author: Andrea Lazzarotto 
# http://andrealazzarotto.com 
# andrea.lazzarotto@gmail.com 
# Slideshare Downloader

# This script takes a slideshare presentation URL as an argument and 
# carves all the slides in flash format, then they are converted to 
# and finally merged as a PDF 
# License:

# Copyright 2010-2011 Andrea Lazzarotto 
# This script is licensed under the Gnu General Public License v3.0. 
# You can obtain a copy of this license here: http://www.gnu.org/licenses/gpl.html
# Usage:

# slideshare-downloader.sh URL [SIZE] 
#———————————————–

# Modify 7/08/2011 by giudinvx 
# Email  giudinvx[at]gmail[dot]com 
#———————————————– 
validate_input() { 
    # Performs a very basic check to see if the url is in the correct form 
    URL=`echo "$1" | cut -d "#" -f 1 | cut -d "/" -f 1-5` 
    DOMAIN=`echo "$URL" | cut -d "/" -f 3` 
    CORRECT=’www.slideshare.net’ 
    if [[ "$DOMAIN" != "$CORRECT" ]]; 
        then 
            echo "Provided URL is not valid." 
            exit 1 
    fi 
    if echo -n "$2" | grep "^[0-9]*$">/dev/null 
        then SIZE=$2 
        else 
            SIZE=2000 
            echo "Size not defined or invalid… defaulting to 2000." 
    fi 
} 
check_dependencies() {

    # Verifies if all binaries are present 
    DEP="wget sed seq  convert" 
    ERROR="0" 
    for i in $DEP; do 
        WHICH="`which $i`" 
        if [[ "x$WHICH" == "x" ]]; 
            then 
                echo "Error: $i not found." 
                ERROR="1" 
        fi 
    done 
    if [ "$ERROR" -eq "1" ]; 
        then 
            echo "You need to install some packages." 
            echo "Remember: this script requires Imagemagick and Swfdec." 
            exit 1 
    fi 
} 
build_params() {

    # Gathers required information 
    DOCSHORT=`echo "$1" | cut -d "/" -f 5` 
    echo "Download of $DOCSHORT started." 
    echo "Fetching information…" 
    INFOPAGE=`wget -q -O – "$1"` 
    DOCID=`echo "$INFOPAGE" | grep "doc=" | cut -d "=" -f 3 | cut -d "&" -f 1` 
    if [[ "$DOCID" =~ "([a-z0-9-]+)$" ]] 
    then 
        DOCID=${BASH_REMATCH[0]} 
    else 
        echo $DOCID 
        exit 1 
    fi 
    SLIDES=`echo "$INFOPAGE" | grep "totalSlides" | head -n 1 | sed -s "s/.*totalSlides//g" | cut -d ":" -f 2 | cut -d "," -f 1` 
    echo "Slides: $SLIDES" 
    echo "Size: $SIZE" 
} 
create_env() {

    # Finds a suitable name for the destination directory and creates it 
    DIR=$DOCSHORT 
    if [ -e "$DIR" ]; 
        then 
            I="-1" 
            OLD=$DIR 
            while [ -e "$DIR" ] 
            do 
                I=$(( $I + 1 )) 
                DIR="$OLD.$I" 
            done 
    fi 
    mkdir "$DIR" 
} 
fetch_slides() {

    for i in $( seq 1 $SLIDES ); do 
        echo "Downloading slide $i" 
        wget "http://cdn.slidesharecdn.com/`echo $DOCID`-slide-`echo $i`.swf" -q -O "$DIR/slide-`echo $i`.swf" 
    done 
    echo "All slides downloaded." 
} 
convert_slides() {

    for i in $( seq 1 $SLIDES ); do 
        echo "Converting slide $i" 
#        swfdec-thumbnailer -s $SIZE $DIR/slide-$i.swf $DIR/slide-$i.png 2>/dev/null 
        swfrender $DIR/slide-$i.swf -o $DIR/$i.png 2>/dev/null 
    done

    echo "All slides converted." 
} 
build_pdf() {

    cd $DIR 
    IMAGES=`ls *.png | sort -k1.3 ` 
    echo "Generating PDF…" 
    convert $IMAGES +adjoin %d.pdf 
    PDFS=`ls *.pdf | sort -k1.3 ` 
    pdftk $PDFS cat output $DOCSHORT.pdf 
    cd .. 
    echo "The PDF has been generated." 
    echo "Find your presentation in: \"`pwd`/$DIR/$DOCSHORT.pdf\"" 
} 
clean() {

    rm -rf $DIR/*.swf 
    rm -rf $DIR/*.png 
} 
validate_input $1 $2

check_dependencies 
build_params $URL 
create_env 
fetch_slides 
convert_slides 
build_pdf 
clean 

脚本下载请猛击

    同样的程序逻辑其实可以适用于百度文库、豆丁这样的在线文库。像百度文库、豆丁之类的在线文库许多资料需要积分下载,但可免费在线浏览,这些文库都使用Flash作为播放器,这就为免积分下载器提供了条件。当然在windows上有冰点文库下载器易读文库下载器这样的图形化工具可用。只不过原理应该也是类似的,看一下冰点文库下载器目录下的SWFToImage.DLL、pdflib.dll两个动态库大致可以知道。

    其实谁有兴趣和精力可以将此类下载功能做成一个单独的在线服务,由此还可以延伸出其他产品功能来,应该还是挺有市场的。

相关链接:http://www.yeeach.com/?p=470

http://www.yeeach.com/?p=1160

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013年05月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
纯图 ppt 的优势和转换方法
纯图 PPT,顾名思义,是将所有内容以图片形式展示的 PPT。这种形式可以保持内容的高度一致性,不会因设备或软件版本的不同而出现错位或排版问题。以下是它的主要优势及转换方法。
叶子Tenney
2024/10/29
1640
纯图 ppt 的优势和转换方法
PDF 转 PPT 多方案概述
在日常工作中,我们常常需要将 PDF 文件转换为 PPT 格式,以便于演示和分享。以下是三种常用的 PDF 转 PPT 方案,供您参考。
码事漫谈
2024/12/20
1600
PDF 转 PPT 多方案概述
第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片
人工智能时代,最需要学习的编程语言是:python 。笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 。
勇哥java实战
2024/03/11
6820
Android开发笔记(一百四十一)读取PPT和PDF文件
上一篇博文讲到在Android上如何读取word文件内容,那么office三剑客中还剩ppt文件的读取。前面解析word文件和excel文件时,都用到了poi库读取文件内容,对于ppt一样也可以通过poi读取幻灯片中的文本。HSLFSlideShow类就是poi中专门用于解析幻灯片的工具类,每张幻灯片又分别由单独的HSLFSlide类处理,幻灯片中的具体图文内容则由HSLFTextParagraph和HSLFTextRun进行分辨。 下面是使用poi解析ppt文件(2003格式)的效果图:
aqi00
2019/01/18
3.8K0
苹果Mac电脑如何下载安装PS、Ai、Id、DW和Pr这些软件?
看到这里你一定很好奇,如何才能获取Adobe Photoshop 2022 for mac直装版安装包呢?皮皮在这里告诉大家,方法很简单!
office小助手
2022/05/14
10.2K0
苹果Mac电脑如何下载安装PS、Ai、Id、DW和Pr这些软件?
告别「复制+粘贴」,基于深度学习的OCR,实现PDF转文本
传统的讲座通常伴随着一组 pdf 幻灯片。一般来说,想要对此类讲座做笔记,需要从 pdf 复制、粘贴很多内容。
机器之心
2021/06/08
1.8K0
Android deeplink漏洞
Deep link是一种处理特定类型链接并直接发送到应用程序(例如特定活动)的机制。Android 允许开发者创建两种类型的链接:
tea9
2023/08/24
8330
使用 BeamerStyleSlides 制作你的技术答辩PPT
年末,又到了很多朋友准备答辩晋升 slides 的时候。PPT工程 应该是很多技术人的天敌之一,不少人为了在工作之余折腾出一份既有内容又美观的 slides 弄得焦头烂额。
HaHack
2019/01/23
2.3K0
使用 BeamerStyleSlides 制作你的技术答辩PPT
python之办公自动化
大家好,接下来我们来学习如何使用python 实现自动化办公,而不需要我们人工,或者说尽量减少我们人工的参与。
叫我阿杰好了
2023/01/03
5.1K0
python之办公自动化
ASP.NET MVC基于WebUploader大文件分片上传、断网续传、秒传
我们这里只讲分片上传,至于断网续传和秒传已经写好Demo,下载地址放在文末,有兴趣的可以下载自己玩玩。
郑子铭
2023/08/30
4090
ASP.NET MVC基于WebUploader大文件分片上传、断网续传、秒传
PhotoSwipe中文API(一)
您可以在GitHub的信息库DIST/文件夹中找到它们。萨斯和未编译的JS文件夹中的src /。我建议使用无礼的话,如果你打算修改现有的样式,有代码的结构和评述。https://github.com/dimsemenov/PhotoSwipe
李维亮
2021/07/09
4.5K0
PhotoSwipe中文API(一)
Flex应用性能优化
前几章介绍了Flex应用开发的主要内容,本章将介绍Flex应用性能优化相关的知识,比如如何减少SWF文件的大小和内存泄漏问题以及改善代码性能的技巧等。很多时候,影响应用性能的主要因素是设计。不好的设计是导致应用性能低下的主要原因,而针对不同特点的应用,采用何种设计方法往往与设计者本身的经验和素质相关。在排除了设计的因素之后在Flex应用开发中还有很多具体细节和技巧可以提高Flex应用的性能,本章将介绍RSL技术以减小SWF文件的体积,和Flex垃圾回收原理,以及预防内存泄露的一些基本技巧。此外还介绍了Flex应用中进行打印机打印的常见方法。
用户9184480
2024/12/17
780
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
我们在读取文件的时候,excel的列是字母我们不容易直观看出来是第几列,下面对excel进行设置。
汀丶人工智能
2022/12/21
2.9K0
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
程序员每天都使用的软件
5.iTop Easy Desktop Free - Stardock Fences 的绝佳替代品。功能相似,甚至相同。优点:免费;容器快速隐藏。缺点:非开源 [?]。[旁注:iTop 提供的几乎所有东西似乎都非常有用]
mariolu
2024/06/21
1350
C#实现 word、pdf、ppt 转为图片
office word文档、pdf文档、powerpoint幻灯片是非常常用的文档类型,在现实中经常有需求需要将它们转换成图片 -- 即将word、pdf、ppt文档的每一页转换成一张对应的图片,就像先把这些文档打印出来,然后再扫描成图片一样。所以,类似这种将word、pdf、ppt转换为图片的工具,一般又称之为“电子扫描器”,很高端的名字!
郑子铭
2024/01/03
3320
C#实现 word、pdf、ppt 转为图片
基于RTMP数据传输协议的实时流媒体技术研究
本文来自论文《基于 RTMP 协议的流媒体技术的原理与应用》,文中研究了基于 Flash 平台的流媒体系统中使用的 RTMP 协议的原理和应用,并对网络上实时流媒体的各种传输方式的优缺点进行了分析。然后,重点分析了基于 RTMP 协议的流媒体技术的特点,并且介绍了 RTMP 协议报文的格式。最后,实现了一个基于 RTMP 协议的流媒体直播系统。
竹清
2018/08/31
2.9K0
SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合
PS:因一客户的运营环境需求,需要nginx和resin整合,nginx负责处理静态页面部份,resin负责处理动态JSP部份。Resin是CAUCHO公司的产品,是一个非常流行的application server,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发,而且Resin速度比Tomcat快,稳定性也比Tomcat好。关于各软件版本,我使用了官方比较新的稳定版本。以下是该环境安装整合部署的详细总结:
全栈程序员站长
2022/08/26
1.3K0
爬虫神器:一条命令下载《复仇者联盟3:无限战争》
听说你学会了爬虫,并且成功使用 urllib2/requests/scrapy 下载了想要的视频和音乐,但你有听过一条命令就能完成视频和音乐的下载呢?来看看今天带给你们的神器— you-get 吧!
abs_zero
2018/07/25
7250
爬虫神器:一条命令下载《复仇者联盟3:无限战争》
Windows 罕见技巧全集3
1.重新启动Windows 点“开始”|“关闭系统”以后,在“关闭Windows”对话框中,按住Shift键不放, 用鼠标点击“重新启动计算机”,再点“是”按钮,释放Shift键。这样,就重新启动Windows界面,而不是重新启动计算机。 2. 跳过开机画面 启动时按 esc 即可,或者干脆一点,修改 msdos.sys在options段落加入logo=0。
py3study
2020/01/08
1.5K0
使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受
  本文大部分内容来自http://www.codeproject.com/Articles/710747/First-thoughts-on-Spire-Doc-for-NET。
aehyok
2018/08/31
2.7K0
使用Spire.Office for .NET(Word、Excel、PPT、PDF等)的初步感受
推荐阅读
相关推荐
纯图 ppt 的优势和转换方法
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文