這種轉(zhuǎn)變將以兩種方式進(jìn)行,一些站點(diǎn)學(xué)習(xí)amazon, del.icio.us 和Flickr, 通過REST API的方式提供他們的信息. 另一些網(wǎng)站將試圖保持信息的私有性, 但這些信息會通過匯聚(mashups)的方式公開, 匯聚可以通過Dapper, Teqlo和Yahoo!Pipes等生成. 非結(jié)構(gòu)化信息將給結(jié)構(gòu)化信息讓路, 使得智能計(jì)算的道路更加平坦. 本文將講述這些重要的轉(zhuǎn)變是怎樣發(fā)生的以及它們怎樣改變互聯(lián)網(wǎng).
亞馬遜電子商務(wù)API-打開訪問亞馬遜商品目錄的大門
我們已經(jīng)在這里 寫了亞馬遜的WebOS戰(zhàn)略,這個(gè)西雅圖的Web巨人通過一套強(qiáng)大的API把自身的網(wǎng)站構(gòu)架暴露于眾。首先開放的服務(wù)是電子商務(wù)服務(wù),該服務(wù)開放了亞馬遜產(chǎn)品目錄主要產(chǎn)品的訪問,該API相當(dāng)強(qiáng)大,允許處理用戶,收藏列表和購物車,當(dāng)然最關(guān)鍵的是可以查看亞馬遜的產(chǎn)品。
亞馬遜為什么以完全免費(fèi)的方式提供這項(xiàng)服務(wù)呢?因?yàn)閹缀跛匈徑ㄔ谶@項(xiàng)服務(wù)之上的應(yīng)用都為亞馬遜帶來了流量(該服務(wù)返回給應(yīng)用程序的產(chǎn)品中含有亞馬遜的鏈接)。換句話說,通過提供電子商務(wù)服務(wù),亞馬遜使別人能夠訪問亞馬遜的庫存。結(jié)果是很多公司想出了利用亞馬遜信息的好方法。你可以在這里看到這些成功的案例.
API文化升溫
Del.icio.us也是最早開放其API 的Web2.0網(wǎng)站,很多Web服務(wù)緊隨其后,使得API文化逐漸升溫,John Musser在ProgrammableWeb上不辭辛勞地將這些API和匯聚分類整理,這個(gè)頁面分門別類地給出了將近400個(gè)API。這些對理解本文很有幫助。
當(dāng)前的Del.icio.us API 與亞馬遜的不同,因?yàn)樗鼪]有開放del.icio.us的數(shù)據(jù)庫,它做的只是允許授權(quán)的匯聚應(yīng)用去加工存儲在del.icio.us的信息。比如,應(yīng)用程序可以通過編程添加一個(gè)帖子,或更新一個(gè)tag,但你不能通過API去知道你這個(gè)帖子發(fā)到了哪個(gè)鏈接,或者整個(gè)數(shù)據(jù)庫中哪些內(nèi)容被打上了這個(gè)tag,這些問題通過網(wǎng)站很容易回答,但卻不能通過當(dāng)前的API來得到答案。
標(biāo)準(zhǔn)化的URL-沒有API的API
盡管沒有直接的API(深入數(shù)據(jù)庫), 很多公司還是可以利用存儲在del.icio.us中的信息。這里有一些例子。
Delexa是一個(gè)有趣而且有用的匯聚站點(diǎn), 它可以用del.icio.us去對Alexa站點(diǎn)進(jìn)行歸類,例如,這里是以book標(biāo)簽的著名站點(diǎn)。
另一個(gè)站點(diǎn)叫similicio.us, 使用del.icio.us去推薦類似站點(diǎn),例如這里是它認(rèn)為和Read/WriteWeb相似的站點(diǎn)。
怎樣在沒有API的情況下實(shí)現(xiàn)這些服務(wù)呢?答案就是它們可以利用標(biāo)準(zhǔn)URL和一種叫做Web抓取(Web scraping)的技術(shù). 讓我們來看看它是怎么工作的. 比如, 所有被標(biāo)簽為book的鏈接可以在鏈接http://del.icio.us/tag/book 下找到, 而標(biāo)簽為movie的則在http://del.icio.us/tag/movie 下, 等等, 鏈接的結(jié)構(gòu)總是一樣的: http://del.icio.us/tag[TAG] . 因此, 給定任意標(biāo)簽, 程序都可以獲得被該標(biāo)簽標(biāo)記的站點(diǎn)列表, 然后通過頁面抓取技術(shù)抓取需要的信息.
頁面抓取程序怎樣工作
頁面抓取本質(zhì)上是HTML頁面的反向工程,也可以看成頁面解釋器,網(wǎng)頁以HTML編碼,HTML以樹型結(jié)構(gòu)表示信息,實(shí)際數(shù)據(jù)與布局代碼以及效果信息混雜在一起,不能被計(jì)算機(jī)直接利用。抓取器程序“知道”怎樣從給定HTML頁面中抓取數(shù)據(jù)。它們通過分析網(wǎng)頁特定的標(biāo)注方式找到實(shí)際數(shù)據(jù),例如,下圖給出了抓取器怎么抓取del.icio.us的頁面的示意圖。我們可以找到被任意標(biāo)簽標(biāo)記的鏈接。
Dapper, Teqlo, Yahoo! Pipes---即將來臨的的抓取技術(shù)
我們最近談到Yahoo!Pipes, 一個(gè)專注于RSS融合的應(yīng)用,另一個(gè)相似的技術(shù)是,剛剛上線的Teqlo, 它可以讓人們從Web服務(wù)和RSS中創(chuàng)建匯聚。在它們之前,Dapper提供了一個(gè)通用的抓取器,可以抓取任意網(wǎng)站。Dapper是一項(xiàng)有趣的技術(shù),它通過可視界面為抓取網(wǎng)頁提供便捷。
它是這樣工作的,讓開發(fā)者定義一些示例頁面,然后幫助她用標(biāo)記表示相似信息。這看起來很簡單,但現(xiàn)象的背后是Dapper使用一種不平常的樹匹配的算法去完成該任務(wù)。一旦用戶在頁面上定義了相似信息,Dapper允許用戶將其轉(zhuǎn)為一個(gè)字段,對頁面其他信息重復(fù)該過程,開發(fā)這就可以有效的定義一個(gè)查詢語句將一個(gè)非結(jié)構(gòu)化的頁面轉(zhuǎn)為一些結(jié)構(gòu)化的記錄。
作用—Web網(wǎng)站變Web服務(wù)
這里圖示了一些網(wǎng)絡(luò)應(yīng)用像Dapper和Teqlo的作用。
結(jié)合開放API(如亞馬遜的電子商務(wù)服務(wù))和抓取/匯聚技術(shù),我們可以將任何網(wǎng)站看作一個(gè)開放了信息的web服務(wù)。信息,更準(zhǔn)確地說數(shù)據(jù),變得開放。接踵而來的是,軟件可以借此獲取大量數(shù)據(jù)。有了它,互聯(lián)網(wǎng)才真正稱得上是一個(gè)可以查詢和重新組合的數(shù)據(jù)庫。
這聽起來很不錯(cuò),但是否合法呢?
抓取技術(shù)事實(shí)上備受爭議。某種意義上來說,它們可以被認(rèn)為是偷取了屬于其它網(wǎng)站的信息。整個(gè)問題很復(fù)雜,因?yàn)槟悴磺宄截?/span>/粘貼什么時(shí)候結(jié)束,抓取什么時(shí)候開始。人們拷貝保存網(wǎng)頁信息是沒有問題的,但用軟件來做這個(gè)可能不是合法的。但抓取網(wǎng)頁然后提供利用網(wǎng)頁信息的服務(wù),并且沒有說明出處,可能就是非法的了。
但抓取似乎并不會停止,就像Napster的法律糾紛沒有讓人們停止寫點(diǎn)對點(diǎn)共享軟件,更近的YouTube法律糾紛不會使人們停止上傳版權(quán)視頻,看似免費(fèi)的信息也會被人們理所當(dāng)然的當(dāng)成免費(fèi)的。
互聯(lián)網(wǎng)如果變成數(shù)據(jù)庫,巨大機(jī)遇將讓人們興奮不已,如果這一轉(zhuǎn)變真地會實(shí)現(xiàn)呢,我們是否應(yīng)該反思一下怎樣去順應(yīng)這一趨勢呢?
為什么網(wǎng)站應(yīng)該提供Web服務(wù)
這里有幾個(gè)好的理由(特別對在線零售商),最重要的理由是控制,有了API,抓取器就變得沒必要了,它還可以跟蹤誰在使用數(shù)據(jù)以及怎樣和為什么使用,像亞馬遜,網(wǎng)站通過這樣做去培育會員和增加流量。
陳舊的觀點(diǎn)認(rèn)為封閉的數(shù)據(jù)是競爭優(yōu)勢,新的觀點(diǎn)則認(rèn)為開放數(shù)據(jù)才是競爭優(yōu)勢??尚械慕鉀Q方案是不必提心吊膽的去保護(hù)信息,而是提供API,然后收取一定費(fèi)用。對每次API調(diào)用收取少量費(fèi)用(想想亞馬遜)是可以接受的,因?yàn)樵撡M(fèi)用對每個(gè)使用者都不會很高。但卻有機(jī)會在總體上盈利。這就是亞馬遜在web服務(wù)戰(zhàn)略上下的賭,這也許是個(gè)不錯(cuò)的賭。
結(jié)論
隨著越來越多的網(wǎng)站可別其他網(wǎng)站混合利用,整個(gè)系統(tǒng)變成平臺兼數(shù)據(jù)庫。當(dāng)然,這種轉(zhuǎn)變并不順利,可擴(kuò)展性是一個(gè)大問題,法律問題也不那么簡單。
但問題不在于網(wǎng)站是否會變成Web服務(wù),而在于什么時(shí)候和怎樣轉(zhuǎn)變.API是一個(gè)更容易控制,干凈的被大家接受的方式。盡管如此,當(dāng)沒有API或者API不夠強(qiáng)大時(shí),抓取是一種解決問題的方式。像往常一樣,時(shí)間是最好的裁判;同時(shí),我們希望從你的反饋和故事中知道你是怎么面對web3.0的。