如何在9個(gè)小時(shí)內(nèi)轉(zhuǎn)移3.4萬個(gè)WIRED頁面?

2015-11-02 13:46:00 來源:創(chuàng)業(yè)邦 作者:佚名 人氣: 次閱讀 155 條評論

WIRED成立多長時(shí)間了?我只想說,如果它是一個(gè)人的話,那么他已經(jīng)超過法定飲酒年齡了。這20多年來,WIRED已經(jīng)發(fā)表了幾萬期刊物,如果將每一本雜志的封面都擺在書架上,一定...

小時(shí) 頁面 萬個(gè)

WIRED成立多長時(shí)間了?我只想說,如果它是一個(gè)人的話,那么他已經(jīng)超過法定飲酒年齡了。這20多年來,WIRED已經(jīng)發(fā)表了幾萬期刊物,如果將每一本雜志的封面都擺在書架上,一定會讓人感到震撼。然而在網(wǎng)頁上,很顯然無法進(jìn)行這樣的展示。在這個(gè)背景下,我們決定對網(wǎng)頁進(jìn)行一次大掃除。

WIRED.com的發(fā)展故事,向所有人展示了硅谷互聯(lián)網(wǎng)泡沫從出現(xiàn)到破滅的整個(gè)過程。1993年,在WIRED雜志成立不久之后,HotWired成為了在線新聞領(lǐng)域的先鋒。但是當(dāng)互聯(lián)網(wǎng)泡沫碎裂之后,網(wǎng)站被賣給了Lycos,而他們旗下的雜志則被出售給了Condé Nast。這兩個(gè)機(jī)構(gòu)后來各自發(fā)展,直到2006年。在這一年里,Conde收購了WIRED.com。在這次收購之后,除了紙質(zhì)雜志之外,WIRED還開始發(fā)行電子版雜志。有過了不久之后,WIRED.com被轉(zhuǎn)移到了wordPress上,開始用一種全新的方式更新網(wǎng)站,并且保留了此前所發(fā)布的所有內(nèi)容。

你可以將這種文章歸檔方式想象成一種數(shù)字冷凍間。這里儲存了WIRED歷史上發(fā)表過的所有3.422萬個(gè)網(wǎng)頁,這些網(wǎng)頁的出現(xiàn)遠(yuǎn)遠(yuǎn)在WordPress這個(gè)平臺初現(xiàn)以前。這些網(wǎng)頁就像是一個(gè)巨大的寶庫,里面記錄了科技發(fā)展在各個(gè)時(shí)期的里程碑,它甚至可以起到科技發(fā)展編年史的作用,從谷歌的誕生,到蘋果的重新崛起,再到社交網(wǎng)絡(luò)的出現(xiàn)。對于這些內(nèi)容,我們感到十分驕傲,當(dāng)然也非常珍視它們。然而讓我們撓頭的時(shí),雖然這些內(nèi)容的重要性無需多言,但是由于出現(xiàn)的時(shí)間較早,當(dāng)時(shí)所使用的編程技術(shù)無法良好的支持我們現(xiàn)在所使用的網(wǎng)頁技術(shù)。更糟糕的是,這些存檔就像是一個(gè)沒有網(wǎng)站地圖、也沒有網(wǎng)站架構(gòu)的黑匣子,是的我們無法了解它的體積,這使得將這些頁面遷移到現(xiàn)有網(wǎng)站上成為了一件難度異常高的任務(wù)。

Cyphon的出現(xiàn)

Cyphon是一種我所發(fā)明的技術(shù),我開發(fā)它的用意是為了用一種通用標(biāo)準(zhǔn)來分析WIRED的大量網(wǎng)頁存檔,并且存儲其中的相關(guān)數(shù)據(jù)。

今年4月開始,我一直在開發(fā)這種技術(shù),可以說Cyphon占據(jù)了我?guī)缀跛械墓ぷ鲿r(shí)間。我決定使用Node.js將Cyphon打造成一個(gè)命令行工具。Node.js是一個(gè)時(shí)下流行的服務(wù)器端平臺,有大量的開發(fā)人員為其提供支持。最初的時(shí)候,我嘗試著對所有存檔網(wǎng)頁進(jìn)行分析,試圖找到其中是否有可以自動以編程的方式進(jìn)行分類的規(guī)律。在進(jìn)行了一些分析時(shí)候,我發(fā)現(xiàn),大多數(shù)存檔網(wǎng)頁可以被分成3種類型,每一種類型都對應(yīng)著各自發(fā)布時(shí)期所使用的技術(shù)。在獲得了這個(gè)信息之后,我制定了內(nèi)容轉(zhuǎn)移流程,并且對即將使用的工具進(jìn)行了精加工。

首先,我編寫了一個(gè)特殊功能,它可以將大約200本雜志的登錄頁作為起始點(diǎn),對所有存檔網(wǎng)頁進(jìn)行分析。這個(gè)繁冗的分析工作需要花上幾個(gè)小時(shí)的時(shí)間,但是它可以將尚未進(jìn)行分析的頁面安全的存儲在一個(gè)專門的數(shù)據(jù)庫中,這樣做的好處是避免了數(shù)據(jù)損壞,而且還能夠避免進(jìn)行重復(fù)分析的危險(xiǎn)。

接下來,我又編寫了一種方式,它可以將分析得來的粗略數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)性更強(qiáng)的信息:題目、作者、發(fā)布日期等等。在對每一個(gè)特定時(shí)期的內(nèi)容進(jìn)行分析的時(shí)候,我做了一個(gè)獨(dú)特的“摘要統(tǒng)計(jì)器”。有了這些信息,我們就可以將這些網(wǎng)頁的HTML導(dǎo)入這個(gè)摘要統(tǒng)計(jì)器,然后進(jìn)行提取。最后,我又發(fā)明了一種能夠?qū)⑦@些數(shù)據(jù)變成WordPress所支持的簡單格式的方式,然后完成向WordPress平臺的導(dǎo)入。

在這個(gè)過程中,對存檔網(wǎng)頁進(jìn)行分析,以及對內(nèi)容發(fā)表時(shí)間的排序成為了技術(shù)上最大的挑戰(zhàn)。讓我欣慰的是,一位名叫Christopher Giffard的開發(fā)人員已經(jīng)編寫了一個(gè)非常優(yōu)秀的分析工具,這個(gè)工具為我提供了重要的幫助,在Node社區(qū)中,很多人都曾經(jīng)靠著其他開發(fā)人員的幫助完成了目標(biāo)。我想在這里特別感謝這位開發(fā)人員。為了更好的完成內(nèi)容分析和歸類,我創(chuàng)造了無數(shù)的過濾規(guī)則,這些過濾規(guī)則能夠辨別相似頁面中的那些細(xì)微差別,它們也讓內(nèi)容的最終輸出盡可能的靠近當(dāng)前我們所使用的技術(shù)。最重要的是,在剛開始開發(fā)Cyphon的時(shí)候,我就希望它可以被其他人所擴(kuò)展,可以添加其他的分析規(guī)則和摘要統(tǒng)計(jì)器,而我最終完成了這個(gè)目標(biāo)。

例如,在對雜志文章進(jìn)行了分析之后,我又添加了另一個(gè)工具來分析URL列表,完成了大量非雜志文章的統(tǒng)計(jì)和導(dǎo)入。

Cyphon所完成的工作:

·34220個(gè)網(wǎng)頁的分析

·11195篇存檔文章

·14799篇新文章

·97%的數(shù)據(jù)被成功分析并且導(dǎo)入到新網(wǎng)站平臺

·為所有內(nèi)容生成了1076個(gè)標(biāo)簽

有了這些得來不易的數(shù)據(jù),我終于可以在WordPress平臺上瀏覽這些文章了。而直到這個(gè)時(shí)候,我才突然意識到:從上世紀(jì)90年代,那些先驅(qū)的前赴后繼之后,web已經(jīng)經(jīng)歷了許多的變化。從最早的只有文字的文章,當(dāng)后來圖片的出現(xiàn),直到現(xiàn)在我們可以在網(wǎng)頁上直接觀看視頻。在web出現(xiàn)的早期,幾乎所有網(wǎng)頁看上去都一樣,而如今網(wǎng)頁的形式已經(jīng)無窮無盡。然而,無論網(wǎng)頁的布局如何改變,問文章的形式幾乎從來沒有什么巨大的改變。

小時(shí) 頁面 萬個(gè)

況且,這些文章有著自己的價(jià)值,就像我此前所說的,它們是科技世界的編年史,可以讓我們了解科技的發(fā)展進(jìn)程。那么我們要如何利用好這11195篇存檔文章?是否要做一個(gè)回顧科技大事件的專題?我相信網(wǎng)站的內(nèi)容編輯們會有更好的想法。

在整理這些海量數(shù)據(jù)的同時(shí),我獲得了極大的滿足感。作為一名工程師,完成這樣的工作總會讓我興奮異常。作為技術(shù)人員,我的職責(zé)之一,就是保留好以前的內(nèi)容,并且將其遷移到新的網(wǎng)站上,讓讀者在需要的時(shí)候可以輕松的找到這些內(nèi)容。我現(xiàn)在的感覺,就是將這些數(shù)字內(nèi)容整齊的拜訪到了虛擬書架上。

您可能感興趣的文章

    無相關(guān)信息

相關(guān)文章