2016年1月14日 星期四

將 UDN Blog 複製到 Blogger 的小撇步

醞釀已久的部落格分身計劃,終於付諸實現,落腳在Blogger。主要是服膺「蛋不要放在同一個籃子裡」的風險管理原則,選擇一個看起來不至於隨便收攤的地方。其次是做為開山祖師爺資源豐沛,從Blogger再搬到其他地方不乏工具,將來或許比較省力。本質是做為UDN格子的備份,新文章短期內未必同步發表,目前打算是每一兩個月做一次備份。

其實當初開始搞部落格的時候,分身有好幾個。由於真的分身乏術,陸續收山,只留UDN經營至今。Blogger本來是為了試用AdSense而申請開辦,沒多久便關了燈。由於在UDN累積的文章數量接近四位數,搬到那兒都有點吃力。前陣子發現一條方便捷徑,試探後似乎可行,才決定開始動手。

最大問題不在文章,而在上萬張圖片怎麼辦。相簿本身倒還單純,事實上臉書、G+都早有備份,自己家裡當然更少不了。問題是文章內的圖片連結,如果仍然指向UDN,備份便失去一半意義(萬一UDN斷線,從Blogger就會完全看不到圖片)。必須連文帶圖一起打包,才算接近完整。其他如影片,本來並不在UDN,備份是另一個問題,好在數量不大,可以慢慢解決。


最初的解決方案,是利用Blogger的email上傳功能,將文章打包成郵件;文章內的圖片,則下載一併嵌入,然後寄給Blogger。過程依然蠻耗時間,但寫個小程式輔助,可以成批處理,比人工一篇篇弄,要省力得多。實作發現問題很多。第一是郵件有長度限制,各關卡限制不同,圖片一多很容易超標,半路被打回票。其次為防止濫用,Blogger對各種自動上傳都有額度管制,數量稍多就會遭到卡關。最後也是最糟糕的,是Blogger對郵件內嵌圖檔的支援有限,上傳後能閱讀但無法修改,一旦進入編輯模式,圖片就會消失;然而因為版面、編碼的差異,幾乎不可能不加修飾調整。最後只能宣告此路不通。


曾經打算利用Blogger和Google+的API,分別傳送文章和圖檔。後來沒有動手的原因,第一是仍然有每日配額的限制,得分批傳送或設法突圍,徒增複雜度(搞不好打通這條路的時間,土法煉鋼已經搞定);其二是儘管解決文章圖檔上傳,但版面調整和超連結斷線等瑣碎問題,依舊沒有好方法自動處理。

至於為什麼不考慮轉換格式,將UDN的匯出檔變成Blogger匯入檔?問題仍在圖片。雙方的備份檔都不包含圖片(只有超連結),而且匯入時並不會連圖檔一起抓過來。有些線上服務可以幫忙,但基於安全隱私等顧慮,不太想嘗試。所以這條路也就算了。

元旦假期靈機一動,想到一招土法煉鋼,只用簡單的複製貼上,加少許程式輔助,靠人工也能很有效率地搬家,而且圖文一次搞定。關鍵在於上傳到UDN的圖檔,一律會改成數字檔名,格式大約是 f_xxxxxxx_n.ext(例如:f_123456_1.jpg),其中 f_ 是固定的,xxx則是不重複的數字編號,n 通常是 1, 懷疑可能有其他數字,但沒發現過。另一方面,上傳到 Blogger的圖檔,儘管網域和路徑會依其內部邏輯產生一堆亂碼,但檔名不會改變。因此若將圖檔由UDN抓回來,原樣上傳給Blogger,這個 f_xxxxxxx_n.ext檔名,可以當做唯一識別。

首先利用離線瀏覽程式(如HTTrack)把自己UDN部落格名下的圖文一口氣抓下來。目的主要是圖檔,因為文章以網頁形態下載,內容亂得不得了(包含側欄、廣告等一大堆),難以利用。把其中f_xxxxxxx_n.ext名稱的圖檔收集起來,準備上傳。如果能按文章分門別類最好,因為Blogger有上傳配額限制,數量太多會觸發驗證機制,多驗幾次會拒絕存取,甚至停權關閉網誌。最好逐日分批慢慢來。

在Blogger上創立網誌,做好必要設定(這部份請參考Blogger說明),就可以建立新文章。先把今天準備上傳的f_xxxxxxx_n.ext圖檔準備好,在文章編輯框內,選擇[插入圖片]-[上傳檔案],先一次貼進新文章。其次將文章編輯轉到HTML模式,「全選」HTML碼並複製,貼上自己的文字編輯程式(如記事本),收集其中圖檔的超連結,於是有了圖檔在Blogger空間的位置。

 
選擇[插入圖片]-[上傳檔案],可以一次上傳多篇文章的圖檔
 

 文章轉到HTML模式

「全選」HTML碼並複製
注意圖檔的URL已經指向Blogger,但檔名維持不變


貼上自製程式,收集圖檔超連結,並加以記錄

再則打開UDN文章編輯畫面,轉到HTML模式,「全選」HTML碼並複製,貼上自己的文字編輯程式(如記事本),將其中圖檔的超連結,有f_xxxxxxx_n.ext名稱的,一律改為Blogger空間的位置。收集圖檔位置和對照修改,是很瑣碎的事,我寫了一支小程式代勞,省下不少時間力氣。這是整個程序唯一需要工具輔助的步驟。


打開UDN文章編輯畫面,轉到HTML模式

「全選」HTML碼並複製

貼上自己的程式,對照先前的圖片URL進行修改,再複製

圖檔位置修改完的文章,就可以複製貼上Blogger的文章編輯框(HTML模式),填寫標題日期什麼的之後,就可以存檔了。如此一篇篇反覆操作,在程式協助下,每天花十來分鐘,連圖帶文搬個五十篇(目前發現的Blogger額度限制),以我近千篇來說,廿天左右可以搬完。也不能太快,因為放假,十分快樂地搬了兩三百篇的後果,是被Blogger視為濫用而停權,經申訴約一整天才重新開放。我猜想假設寫個機器人程式,多半也是這下場,還是慢慢來得好。

貼上Blogger的文章編輯框(HTML模式),補上標題及其他,儲存後關閉

生成一篇文章, 完成複製

預覽一下。大致不差,細節仍待考究

上傳到Blogger之後,版面難免和UDN有些出入,必須做一些修飾,仍然是件大工程,預計花上幾個月功夫才能完全搞定(想到又很懶)。仍然有些小小問題。譬如UDN站內文章彼此參照的超連結,移到Blogger之後,剛開始多數會斷線(原因是站內網址省略網域),調整後依舊連回UDN,不是很合理;但文章沒上傳之前,顯然無法得知Blogger上的url。這件事只好等全數上傳之後,再想想有什麼辦法。

至少有了個備份。至於狡兔要不要有三窟呢?以風險管理來說,當然有必要;但算上時間成本,呃,再說好了。


Blogger的人機驗證 (Captcha) 畫面,蠻有趣,跟一般扭曲文數字做法不同

P.S.
1. 我的UDN文章HTML碼,實際上是由匯出檔取得,不用開網站編輯程式,複製速度更快,每分鐘約生成三到四篇,結果被Blogger當做惡意機器人,一度停權。
2. 很不幸又發現另一重限制:一個blog最多上傳2000張圖。對圖多的類別(主要是旅遊)真的不太方便哪!好在可以借用其他圖片較少的blog,或乾脆由Google Photo上傳存成相簿。後者的容量大得多,以後應該會儘量利用。





 

沒有留言:

張貼留言