各位同仁,新年快樂。
相信舊特文館駐站作家應該知道,去年十一月中站方已頒布公告,舊特文館駐站作家個人板將於今年2月20日被強制關閉,也就是元宵節的隔天。曾經輝煌一時的特文館終將走入歷史,不留痕跡地被消滅,我們雖百般不願,但畢竟平臺是別人家的,只能乖乖接受現實。而關閉時間再過不到兩週就到了……
然而,若是曾經用心經營個人板的作家,勢必在個人板上留下不少的文章。以本人為例,本人自2005年5月6日開板以來,包含本人與他人的回覆在內,在個人板上至少留下約5600篇文章,這還不包括精華區的內容。這些文章如果一個個點開討論串複製貼上,簡直會死人。為了解決這個困境,我寫了一個程式,自動去讀取個人板的每一頁並存成靜態.html檔,近日終於大公告成。
備份的結果大致如下所示:
備份出來的檔案長這個樣子:
或著也可以看一下我放在免費空間Demo用的備份內容:
如果曾經觀察過哈啦板結構的人,應該知道整個哈啦板共分為:首頁(A.php)、文章列表(B.php)、文章內容(C.php)、精華區列表(G1.php)、精華區索引(listG.php)、精華區異動(logG.php)、精華區內容(G2.php)、板規(rules.php)、水桶(water.php)、投票歷史結果列表(vresult1.php)、投票歷史結果內容(vresult2.php)。
每個.php檔後面帶入不同的編號,例如A.php?bsn=60278,就可載入不同哈啦板與文章的內容。我讀取網頁的方式是使用C#的WebRequest,對指定網址下達需求,便能將網頁原始碼下載回來,接著再對原始碼進行整理與剖析,重新生成另一個.html檔。基於我們只想對哈啦板進行備份,而非完整移植所有功能,所以在重新生成的.html檔中script都會被移除,僅保留css的指令。同時,為避免外連圖片日後可能會失效,所有文章使用的圖片都會被下載回本地端,將圖片連結全部改成本地相對路徑,確保使用者即使在離線狀態瀏覽也不會格式全跑掉。
然而,使用C#的WebRequest只能以未登入的方式取得網頁內容,一些登入才能看到的內容便無法取得。雖說WebRequest也能透過POST的方式模擬登入,取得已登入的頁面,但巴哈姆特的登入還有著Google的reCAPTCHA圖形驗證機制。要怎麼以WebRequest或HttpClient使用POST,通過reCAPTCHA驗證,相關教學我看了實在不是很懂,只好作罷。故如果有程式設計高手知道怎麼用C#來登入巴哈姆特取得已登入的頁面內容,懇請告訴我,感謝。
如果沒有登入的話,將無法取得簽名檔、管理者才看得到的已刪除內容與投票內容。幸好簽名檔與已刪除內容也不是很重要,所以沒備份也無妨。而投票大部份個人板應該都不會舉辦太多次,所以我最終以最陽春的方法打開瀏覽器手動備份,基本上還不至於花太多時間。我們很慶幸現在精華區的內容未登入也能瀏覽,因為最早以前精華區內容是要登入才看得到。如果精華區仍保持登入才能瀏覽的狀態,恐怕精華區半數以上的內容都無法自動備份了。
基本上我幾個熟識的朋友的個人板我都會將它備份起來,然而特文館駐站作家至少有273位,這些駐站作家有部份人似乎已很久沒登入巴哈姆特,對於個人板即將關閉之事恐怕也一無所知。雖然不可諱言可能有人認為這裡是不堪回首的黑歷史,希望趕快埋沒在歷史灰燼中,但應該有更多人像我一樣認為這裡是難以忘懷的回憶。所以為避免最慘烈的悔恨發生,如果您是駐站作家本人,正苦於文章太多備份不完,抑或您是駐站作家的親友,對於親友的個人板即將被關閉而焦急不已卻又聯絡不到人,我這邊也能協助幫忙備份個人板。方法是我會將產生的.html檔打包成壓縮檔,上傳到免費空間。
如果需要我的協助的話,歡迎在下方留言,不過得告訴我板編才行。
此服務只到2月20日特文館駐站作家個人板被關閉為止,且只接受個人板備份需求,不接受一般的哈啦板備份需求喔。