??? Slideshare.net上有很多不錯的Slide都沒有提供下載鏈接,平常倒也無所謂,都是收藏后直接在線觀看的。
??? 這段時間對ZARA的商業模式很感興趣,相關的文檔較少,剛好在Slideshare上有幾個關于ZARA不錯的Slides,而且都沒有提供下載,需要保存到本地以供好好研究,于是研究了一下從Slideshare下載Slide的方法。
??? 對于像Youtube、優酷這樣采用Flash技術的視頻網站,要下載其FLV文件,有如下幾種方法:
??? 1)、使用Firefox 的Video Downloadhelper、Sothink SWF Catcher 這樣的插件下載
??? 2)、使用第三方的下載工具,諸如Orbit Grab++、維棠FLV視頻下載軟件、UUme FLV Spy、網絡嗅探器(影音神探)等
??? 3)、使用一些專門提供解析流行的視頻網站下載地址的服務,例如downflv.com、flvcd.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查找
?? 以上兩種方案基本上能夠通吃所有的視頻網站,只是相對麻煩一點。
??? 盡管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文件的下載地址,例如:
<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 DOWNLOADer、Greasmonkey script還是挺方便的。
??? 可以參考:
Download Slides from SlideShare.net – Firefox Add-on
??? 目前尚未找到好的工具能夠直接把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上下載文件的方法(參考:從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腳本應該是在Ubuntu等Debian系列的環境上測試的,在Redhat 下一些命令的語法似乎有問題
????? 在處理BASH_REMATCH 時候, RedHat 要加“”
if [[ "$DOCID" =~ "([a-z0-9-]+)$" ]] then DOCID=${BASH_REMATCH[0]} else echo $DOCID exit 1 fi
?????? 在Redhat下sort命令無-V參數
???? 基于以上幾個原因,為方便自己使用,對Slideshare Downloader腳本進行了調整,測試了幾個文檔,應該還行。需要安裝swftools、pdftk、imagemagick 包
??? 大致的方法:
??? 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 上做了測試,且對代碼未做優化):
#!/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 $2check_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
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
安慶汽車南站在哪?各自地安慶汽車站(地址:安慶市宜城路與華中西路交叉口);安慶汽車南站(地址:安慶宜城路,安慶賓館旁);安慶中心客運站(地址:206國道,廣材附近,原安慶北客運站);安慶旅游汽車站(地址:開發區黃土坑):安慶湖濱客運站(地址:菱湖南路,安慶交通局對面);安慶汽車二連閆飛快速公交安慶站(地址:菱湖南路與紡織南路交叉口);安慶萍 安快速客運站(地址:宜城路規劃局斜對面);安慶城西站(地...
不用手機號碼怎么注冊淘寶???你可以通過電子郵件注冊。具體操作是登錄淘寶,點擊免費注冊。在出現的屏幕上,單擊通過電子郵件注冊。然后輸入郵箱和驗證碼;輸入手機號碼。請注意,這僅用于接收驗證碼。隨便用一個手里的手機號。無論是否注冊,點擊即可免費獲取驗證碼。輸入手機收到的6位驗證碼,點擊下一步;注冊完成后,需要郵件驗證才能完成操作。單擊“轉到電子郵件”按鈕!進入郵箱后,找到注冊的郵箱,點擊驗證鏈接。如果你...
電腦瀏覽器跳轉到莫名的網頁是怎么回事?以上是主要問題和問題描述。這是瀏覽器主頁劫持的常見情況,您可以手動修改注冊表,簡單的方法是使用工具軟件設置主頁并將其鎖定。以360為例。打開360后,您可以在功能手冊中找到主頁保護和主頁修復:主頁保護可以鎖定您設置的主頁地址:主頁修復可以解決問題,單擊開始掃描:...