網(wǎng)路爬蟲(chóng):不生產(chǎn)內(nèi)容,只是內(nèi)容的搬運(yùn)工
搜索引擎和聚合類新聞App之所以有源源不斷的新內(nèi)容供予用戶瀏覽,原因就在于有網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的加持。網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用對(duì)于用戶來(lái)說(shuō),是一大福利——我們可以從一個(gè)搜索引擎輕松搜索到各個(gè)領(lǐng)域的信息。但是,對(duì)于原創(chuàng)方來(lái)說(shuō),就涉及到版權(quán)被侵犯的問(wèn)題了。工具理性,但不意味著操持工具的人就可以假借“工具理性”肆意侵犯他人的合法權(quán)益,網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的應(yīng)用還應(yīng)該要在法理之內(nèi)。
一、初識(shí)爬蟲(chóng)
工作的時(shí)候,想要查找“產(chǎn)品設(shè)計(jì)”,可以直接在搜索引擎上輸入內(nèi)容,就可以直接找到數(shù)以百萬(wàn)計(jì)的資料。
上下班路上,刷新聞?lì)怉PP的時(shí)候,只要愿意,就會(huì)有源源不斷的新的信息,足夠刷一路的時(shí)間。
搜索引擎和(大多數(shù))新聞?lì)怉PP都不自己生產(chǎn)內(nèi)容(雖然有些平臺(tái)孵化了自己的內(nèi)容,但也只占整個(gè)平臺(tái)內(nèi)容的很少的一部分,更重要的是,成本非常高)。
那么,他們的大量的內(nèi)容從哪里來(lái)?
“我們不生產(chǎn)內(nèi)容,只是內(nèi)容的搬運(yùn)工”,將互聯(lián)網(wǎng)上的內(nèi)容“搬運(yùn)”到自己的服務(wù)器上,這就是爬蟲(chóng)。
首先,我們需要了解一下互聯(lián)網(wǎng)的結(jié)構(gòu)。
互聯(lián)網(wǎng)上的內(nèi)容數(shù)以億計(jì),雖然很復(fù)雜,但說(shuō)白了就是一張大網(wǎng),網(wǎng)上的每個(gè)節(jié)點(diǎn)就是一個(gè)網(wǎng)頁(yè),連接網(wǎng)頁(yè)的超鏈接(Hyperlinks)相當(dāng)于線,線把所有的節(jié)點(diǎn)連接在一起,形成了一個(gè)復(fù)雜的網(wǎng)。
通過(guò)點(diǎn)擊超鏈接的文字或者圖片,就可以跳轉(zhuǎn)到對(duì)應(yīng)的網(wǎng)頁(yè)。爬蟲(chóng)可以自動(dòng)訪問(wèn)到每一個(gè)網(wǎng)頁(yè),并把網(wǎng)頁(yè)的內(nèi)容保存下來(lái)。
世界上第一個(gè)網(wǎng)絡(luò)爬蟲(chóng)由麻省理工學(xué)院的學(xué)生馬修·格雷(Matthew Gray)在1993年寫(xiě)成,之后的爬蟲(chóng)盡管越來(lái)越復(fù)雜。
比如:可以實(shí)現(xiàn)更快的訪問(wèn)速度、訪問(wèn)更多的網(wǎng)頁(yè)、更好的將網(wǎng)站內(nèi)容解析出來(lái)。但爬蟲(chóng)的基本原理是一樣的,都主要包括三個(gè)部分:訪問(wèn)網(wǎng)頁(yè)鏈接,下載網(wǎng)頁(yè)內(nèi)容,解析網(wǎng)頁(yè)內(nèi)容。
爬蟲(chóng)的工作過(guò)程與我們查找網(wǎng)頁(yè)的過(guò)程是一樣的。
比如,我們想要查一下豆瓣上最新的電影:首先,在瀏覽器地址欄輸入網(wǎng)址鏈接https://movie.douban.com/,之后,瀏覽器會(huì)跳轉(zhuǎn)到豆瓣電影。最后,我們就可以找到當(dāng)前熱映的電影。
同樣的,一個(gè)最簡(jiǎn)單的爬蟲(chóng)三步就可以爬取一個(gè)網(wǎng)頁(yè)——首先,訪問(wèn)這個(gè)網(wǎng)頁(yè),之后,把網(wǎng)頁(yè)內(nèi)容下載下來(lái),最后,對(duì)下載的內(nèi)容進(jìn)行解析。
二、7行代碼爬取豆瓣電影
最簡(jiǎn)單的爬蟲(chóng)三步就可以爬取一個(gè)網(wǎng)頁(yè),那么要寫(xiě)多少行代碼呢?
我們寫(xiě)一個(gè)爬蟲(chóng),爬取豆瓣的“一周口碑榜”,只要7行代碼!
這里我們使用Python語(yǔ)言,至于為什么選擇Python語(yǔ)言,會(huì)在后面交代清楚,如果不懂Python也沒(méi)有關(guān)系,了解爬蟲(chóng)是如何工作的就可以了。
代碼如下:
import requests from lxml
import html url=’https://movie.douban.com/’ # 1、需要爬數(shù)據(jù)的網(wǎng)址
page=requests.Session().get(url) # 2、訪問(wèn)網(wǎng)頁(yè)
tree=html.fromstring(page.text) # 3、解析網(wǎng)頁(yè)的過(guò)程
result=tree.xpath(‘//td[@class=”title”]//a/text()’) #3、解析網(wǎng)頁(yè)的過(guò)程
print(result) # 打印出結(jié)果
在Python環(huán)境中運(yùn)行這幾行代碼,就可以獲取“一周口碑榜”了,結(jié)果如下:
[‘迦百農(nóng)’, ‘綠皮書(shū)’, ‘馴龍高手3’, ‘速成家庭’, ‘阿麗塔:戰(zhàn)斗天使’, ‘膚色’, ‘死亡天使’, ‘黎明墻’, ‘小小巨人’, ‘出·路’]
其中最關(guān)鍵的是解析網(wǎng)頁(yè)內(nèi)容,主要是(‘//td[@class=”title”]//a/text()’)這行代碼,大多數(shù)人可能對(duì)比較困惑。
這涉及到HTML網(wǎng)頁(yè)的結(jié)構(gòu),可以把網(wǎng)頁(yè)理解成一個(gè)文件夾,打開(kāi)一個(gè)文件夾,會(huì)發(fā)現(xiàn)子文件夾,子文件夾或許還有文件夾。通過(guò)打開(kāi)一個(gè)個(gè)文件夾,最終找到需要的數(shù)據(jù)。
- ?//td :這個(gè)相當(dāng)于大目錄;
- [@class=”title”]:這個(gè)相當(dāng)于小目錄;
- ?//a :這個(gè)相當(dāng)于最小的目錄;
- /text():這個(gè)是提取其中的文字內(nèi)容。
至于是怎么寫(xiě)出來(lái)這行代碼的,可以通過(guò)在網(wǎng)頁(yè)空白處點(diǎn)擊右鍵,查看源代碼,就可以找到對(duì)應(yīng)的td、class=”title”、a等標(biāo)識(shí)符。
大多數(shù)程序員寫(xiě)爬蟲(chóng)選擇python的理由很簡(jiǎn)單.
首先,python有很多的庫(kù),可以直接調(diào)用,比如:上面的代碼就引入了requests、lxml庫(kù),分別實(shí)現(xiàn)訪問(wèn)網(wǎng)頁(yè)、對(duì)網(wǎng)頁(yè)結(jié)構(gòu)解析。有開(kāi)源的庫(kù),就直接調(diào)用,避免重復(fù)造輪子。
其次,python寫(xiě)起來(lái)很方便,配置也簡(jiǎn)單,短短幾行的代碼,就可以直接運(yùn)行了,如果使用C或者Java,可能配置環(huán)境就要老半天。
三、一個(gè)簡(jiǎn)答的爬蟲(chóng)系統(tǒng)
把上面的每個(gè)步驟分別實(shí)現(xiàn)(模塊化),就可以構(gòu)成一個(gè)簡(jiǎn)答的爬蟲(chóng)系統(tǒng)。
使用URL(可以理解為網(wǎng)址鏈接)管理器管理所有的網(wǎng)址鏈接,使用HTML(可以理解為網(wǎng)頁(yè)內(nèi)容)下載器下載網(wǎng)頁(yè)內(nèi)容,使用HTML解析器對(duì)下載的內(nèi)容解析,再加上數(shù)據(jù)存儲(chǔ)模塊、控制整個(gè)爬蟲(chóng)的調(diào)度模塊,就構(gòu)成了一個(gè)簡(jiǎn)單的爬蟲(chóng)系統(tǒng)。
爬蟲(chóng)基本架構(gòu)
更具體的說(shuō),URL管理器負(fù)責(zé)管理所有的網(wǎng)址鏈接,記錄下哪些URL已經(jīng)爬取了,哪些還沒(méi)有爬取。如果爬取過(guò)了,就要避免再次下載,如果沒(méi)有,就要加入隊(duì)列,等HTML下載器下載。
HTML下載器可以從服務(wù)器下載整個(gè)網(wǎng)頁(yè)的內(nèi)容,從URL管理器中獲取未爬取的網(wǎng)址鏈接,之后,訪問(wèn)這些網(wǎng)頁(yè)鏈接,下載網(wǎng)頁(yè)。
HTML解析器負(fù)責(zé)解析下載好的網(wǎng)頁(yè),主要有兩個(gè)任務(wù):一方面,解析出需要的信息,比如上文的“一周口碑榜”;另一方面,解析出新的URL鏈接,交給URL管理器,繼續(xù)下載,這個(gè)功能在上面的“7行代碼”沒(méi)有實(shí)現(xiàn)。
數(shù)據(jù)存儲(chǔ)器實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的功能,將HTML解析器解析出來(lái)的信息存儲(chǔ)起來(lái),否則每次使用都要下載,會(huì)浪費(fèi)大量的時(shí)間。圖片、文檔之類的文件可以直接保存到服務(wù)器上,文字類的可以通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)起來(lái)。
爬蟲(chóng)調(diào)度器作為系統(tǒng)的大腦,負(fù)責(zé)統(tǒng)籌其他四個(gè)模塊的協(xié)調(diào)工作。
無(wú)論是大型的還是小型的爬蟲(chóng)雖然在設(shè)計(jì)細(xì)節(jié),性能上有所不同,但都不會(huì)脫離這五個(gè)模塊。
四、更深入的考慮
乍一看,每個(gè)模塊實(shí)現(xiàn)起來(lái)都很簡(jiǎn)單,但細(xì)想,似乎每個(gè)模塊都要考慮很多東西。
1. 初始的網(wǎng)址鏈接如何獲得
7行代碼爬取豆瓣電影,直接訪問(wèn)網(wǎng)址鏈接(https://movie.douban.com/)就可以爬取“一周口碑榜”。對(duì)稍大一些的爬蟲(chóng)系統(tǒng)或者商用爬蟲(chóng),就要有更多的考慮了,在保證獲取充足信息的同時(shí),也要保證下載的質(zhì)量。
對(duì)搜索引擎公司而言,要盡可能包括互聯(lián)網(wǎng)所有的信息。對(duì)垂直領(lǐng)域,更多的偏向業(yè)務(wù)類信息,比如:對(duì)新聞?lì)惖腁PP,主要包括一些新聞網(wǎng)站、政府網(wǎng)站等,對(duì)Github這類的編程網(wǎng)站,他們可能就不感興趣。
巧婦難為無(wú)米之炊,初始的網(wǎng)址鏈接基本要靠人工憑經(jīng)驗(yàn)獲取,比如:新聞?lì)惖腁PP,他們的初始URL列表里可能就包括新浪、網(wǎng)易、搜狐等門(mén)戶網(wǎng)站,也包括各個(gè)級(jí)別的政府網(wǎng)站,還有人民網(wǎng)、新華社、人民日?qǐng)?bào)等媒體的網(wǎng)站。
2. 如何確定哪些網(wǎng)頁(yè)已經(jīng)下載過(guò)了
當(dāng)一個(gè)頁(yè)面下載完成后,從這個(gè)網(wǎng)頁(yè)中提取出其中的網(wǎng)址鏈接,把它們添加到等待下載的隊(duì)列中,就可以獲得更多的網(wǎng)址鏈接。
如果一個(gè)網(wǎng)頁(yè)已經(jīng)下載過(guò)了,重新下載,會(huì)消耗大量的時(shí)間,并占用存儲(chǔ)空間。更要命的是,如果一直重復(fù)下載,就可能陷入死循環(huán)。
那么,如何知道這網(wǎng)址鏈接是不是已經(jīng)下載過(guò)了?
對(duì)于小型爬蟲(chóng),可以使用列表存儲(chǔ)下載過(guò)的網(wǎng)址鏈接,當(dāng)有新的網(wǎng)址鏈接的時(shí)候,先查找這個(gè)列表中有沒(méi)有該網(wǎng)址鏈接。如果有的話,就不用插入,如果沒(méi)有的話,就插入列表,等待訪問(wèn)下載。
對(duì)于大型爬蟲(chóng),有成百上千個(gè)“小爬蟲(chóng)”(更加專業(yè)的名詞叫做分布式爬蟲(chóng)),分布在不同的服務(wù)器上,同時(shí)爬取網(wǎng)址鏈接,就要考慮更多的東西。
比如:不同爬蟲(chóng)之間的分工和通信,如何共同維護(hù)上述的列表。
當(dāng)數(shù)據(jù)很大的時(shí)候,就要考慮分布式、通信、存儲(chǔ)、帶寬等每個(gè)環(huán)節(jié)的限制,無(wú)論哪個(gè)環(huán)節(jié)沒(méi)有做好,都有可能成為系統(tǒng)的瓶頸,這就像是木桶效應(yīng)中的短板。
數(shù)據(jù)量增加10倍,之前的代碼可能要重寫(xiě)了,工作量可能就要增加100倍,這也是量變引起質(zhì)量的一個(gè)很好的例子。
在計(jì)算機(jī)領(lǐng)域,這樣的例子隨處可見(jiàn),當(dāng)數(shù)據(jù)增大到一定量級(jí),原有的算法很可能無(wú)法繼續(xù)使用,需要重新開(kāi)發(fā),隨之而來(lái)的是加班、DEBUG以及延期上線。
3. 頁(yè)面的解析
爬取豆瓣電影的“一周口碑榜”,需要研究網(wǎng)頁(yè)的源代碼,并編寫(xiě)對(duì)應(yīng)的解析代碼。但是網(wǎng)頁(yè)的結(jié)構(gòu)不同,用這個(gè)代碼爬取知乎,解析不到任何內(nèi)容。
以新聞?lì)惖腁PP為例:一個(gè)好的新聞?lì)怉PP需要爬蟲(chóng)數(shù)以億計(jì)的網(wǎng)頁(yè),并把里面的文字、視頻、圖片分別解析出來(lái),難度可想而知。
好消息是一部分網(wǎng)站會(huì)遵守RSS規(guī)范(遵守RSS規(guī)范的網(wǎng)頁(yè)結(jié)構(gòu)和代碼都有相似性,以便于訂閱器獲取主要信息),一種類型的爬蟲(chóng)就可以爬取大量這種類似的網(wǎng)頁(yè)。但大部分的網(wǎng)站的結(jié)構(gòu),都是不同的,這需要算法工程師花費(fèi)大量的時(shí)間和精力做解析工作。
五、 反爬蟲(chóng)
新聞?lì)怉PP通過(guò)爬蟲(chóng),獲得大量的優(yōu)質(zhì)資源,讀者也樂(lè)意在一個(gè)平臺(tái)上看到所有的內(nèi)容,但“被爬取”的網(wǎng)站就不太高興了。對(duì)于大多數(shù)依靠廣告收入的網(wǎng)站,沒(méi)有了流量,連生存都成了問(wèn)題,更別說(shuō)盈利了。
一些自成體系的平臺(tái),比如:大型電商平臺(tái),他們希望所有的用戶在自己的平臺(tái)上查找信息,所有的商家在自己的平臺(tái)上吸引賣(mài)家(廣告費(fèi)可不能付給搜索引擎),同樣不希望爬蟲(chóng)的騷擾。
搜索引擎希望爬取更多的信息,優(yōu)質(zhì)的內(nèi)容提供商又不希望被爬蟲(chóng)騷擾,利益沖突難以調(diào)和,于是產(chǎn)生了Robots協(xié)議來(lái)解決這個(gè)問(wèn)題。
Robots協(xié)議網(wǎng)站服務(wù)器的一個(gè)聲明,通常是保存在網(wǎng)站根目錄下的一個(gè)TXT格式的文件,網(wǎng)站通過(guò)Robots協(xié)議告訴搜索引擎:哪些頁(yè)面可以抓?。磕男╉?yè)面不能抓???
當(dāng)爬蟲(chóng)訪問(wèn)一個(gè)站點(diǎn)時(shí),它會(huì)首先檢查該站點(diǎn)根目錄下是否存在robots.txt,如果存在,爬蟲(chóng)就會(huì)按照該文件中的內(nèi)容來(lái)確定訪問(wèn)的范圍;如果該文件不存在,所有的爬蟲(chóng)將能夠訪問(wèn)網(wǎng)站上所有沒(méi)有被口令保護(hù)的頁(yè)面。
我們使用搜索引擎,經(jīng)常會(huì)看到“由于該網(wǎng)站的robots.txt文件存在限制指令(限制搜索引擎抓?。?,系統(tǒng)無(wú)法提供該頁(yè)面的內(nèi)容描述”,就是源于這個(gè)協(xié)議。
值得注意的是:Robots協(xié)議是國(guó)際互聯(lián)網(wǎng)界通行的道德規(guī)范,并沒(méi)有強(qiáng)制性約束力。
一些“沒(méi)有道德”的爬蟲(chóng)同樣會(huì)爬取有robots.txt限制指令的網(wǎng)站,這時(shí)候就需要一些技術(shù)來(lái)實(shí)現(xiàn)反爬蟲(chóng)了。
最常見(jiàn)的有三種方式:
1. 網(wǎng)站會(huì)根據(jù)IP地址訪問(wèn)的頻率確定是不是爬蟲(chóng)
每個(gè)電腦都有唯一的IP地址,每個(gè)爬蟲(chóng)也有唯一的IP地址,當(dāng)電腦或者爬蟲(chóng)訪問(wèn)網(wǎng)站的時(shí)候,網(wǎng)站會(huì)記錄這個(gè)IP地址。如果同一個(gè)IP短時(shí)間多次訪問(wèn)同一個(gè)網(wǎng)站,這個(gè)網(wǎng)站可能會(huì)傾向于認(rèn)為這是個(gè)爬蟲(chóng),會(huì)采取一些措施。
最常見(jiàn)的就是驗(yàn)證碼、點(diǎn)擊圖片之類的驗(yàn)證機(jī)制了。
我們使用12306買(mǎi)票的時(shí)候總需要點(diǎn)擊圖片,就是一種反爬蟲(chóng)機(jī)制——因?yàn)榕老x(chóng)太多,一個(gè)爬蟲(chóng)每秒可以實(shí)現(xiàn)成百上千次的點(diǎn)擊,在春運(yùn)等高峰時(shí)段,12306上爬蟲(chóng)點(diǎn)擊買(mǎi)票的次數(shù)甚至要超過(guò)人點(diǎn)擊的數(shù)量。于是,就干脆全部使用驗(yàn)證機(jī)制。
當(dāng)然,這在反爬蟲(chóng)的同時(shí),也會(huì)給用戶帶來(lái)一些不好的體驗(yàn)。
相比之下,一些比較優(yōu)秀的網(wǎng)站或者APP,會(huì)根據(jù)用戶點(diǎn)擊頻率、時(shí)間間隔等信息,判斷是不是爬蟲(chóng)或者誤點(diǎn)擊,之后再確定是否需要驗(yàn)證。
更好的用戶體驗(yàn)背后,是更大的開(kāi)發(fā)成本,更長(zhǎng)的開(kāi)發(fā)周期。
2. 網(wǎng)站也可以根據(jù)用戶請(qǐng)求的Headers來(lái)判斷是不是爬蟲(chóng)
當(dāng)我們使用瀏覽器訪問(wèn)網(wǎng)站的時(shí)候,瀏覽器會(huì)自動(dòng)在訪問(wèn)請(qǐng)求上添加一些信息,比如:瀏覽器采用的編碼方式、使用的操作系統(tǒng)、瀏覽器版本等信息放在訪問(wèn)請(qǐng)求的最開(kāi)始,作為Headers,但爬蟲(chóng)一般不會(huì)附加這些信息。
網(wǎng)站會(huì)根據(jù)是否存在Headers信息以及Headers信息的內(nèi)容,判斷對(duì)方是不是爬蟲(chóng),有必要的話,就拒絕訪問(wèn)。
3. 動(dòng)態(tài)頁(yè)面的反爬蟲(chóng)
之前將的HTML網(wǎng)頁(yè)都是靜態(tài)的,隨著HTML代碼生成,頁(yè)面的內(nèi)容和顯示效果就不會(huì)發(fā)生變化了。而動(dòng)態(tài)網(wǎng)頁(yè)則不然,動(dòng)態(tài)網(wǎng)站是腳本語(yǔ)言(比如PHP)生成的,一些內(nèi)容不是直接可見(jiàn)的,而是要運(yùn)行一些腳本,才能看到。
網(wǎng)址后綴為htm、html、shtml、xml的網(wǎng)頁(yè)是靜態(tài)網(wǎng)頁(yè),而動(dòng)態(tài)網(wǎng)頁(yè)是以·aspx、.asp、.jsp、.php、.perl、.cgi等形式為后綴,并且在動(dòng)態(tài)網(wǎng)頁(yè)網(wǎng)址中有一個(gè)標(biāo)志性的符號(hào)“?”,這些不同的后綴基本代表了網(wǎng)頁(yè)使用的語(yǔ)言。
訪問(wèn)靜態(tài)網(wǎng)頁(yè),只需要直接訪問(wèn)鏈接就可以了,訪問(wèn)動(dòng)態(tài)網(wǎng)站,還需要執(zhí)行一些特定的操作(比如點(diǎn)擊),才能顯示更多的內(nèi)容,這就增加了爬取的難度,一些簡(jiǎn)單的爬蟲(chóng)就被拒之門(mén)外了。
介紹完三種主流的反爬蟲(chóng)的方式,最后要說(shuō)的是:反爬蟲(chóng)技術(shù)也不是一勞永逸的,在反爬蟲(chóng)的發(fā)展過(guò)程中,爬蟲(chóng)也進(jìn)化出了一系列反“反爬蟲(chóng)”的方式。
針對(duì)反爬蟲(chóng)驗(yàn)證IP機(jī)制,爬蟲(chóng)“進(jìn)化”出了IP代理池,這樣,爬蟲(chóng)就可以不斷變換自己的IP地址,迷惑反爬蟲(chóng)。針對(duì)Headers驗(yàn)證,爬蟲(chóng)也會(huì)生成一個(gè)Headers信息,甚至針對(duì)動(dòng)態(tài)頁(yè)面,也會(huì)模擬瀏覽器的行為。
雖然如此,反爬蟲(chóng)在一定程度上提高了爬蟲(chóng)的成本,降低了爬蟲(chóng)的效率,就可以將一大部分爬蟲(chóng)擋在門(mén)外。
從爬蟲(chóng)與反爬蟲(chóng)的例子也可以看出:大多數(shù)時(shí)候,沒(méi)有絕對(duì)的有效方式。提高對(duì)方的成本,讓對(duì)方覺(jué)得代價(jià)太大,得不償失,就是很好的解決問(wèn)題的辦法。
六、爬蟲(chóng)實(shí)現(xiàn)冷啟動(dòng)——?jiǎng)倮凑x?
上面講了爬蟲(chóng)是怎么運(yùn)行的,常見(jiàn)的反爬蟲(chóng)機(jī)制。最后,我們?cè)僦v一個(gè)爬蟲(chóng)的應(yīng)用場(chǎng)景的例子,可以幫助我們更好理解爬蟲(chóng)。
冷啟動(dòng)是每一個(gè)產(chǎn)品經(jīng)理、運(yùn)營(yíng)人員和創(chuàng)業(yè)者面臨的重大問(wèn)題。沒(méi)有優(yōu)質(zhì)的內(nèi)容,就吸引不了用戶,沒(méi)有大量的用戶,就無(wú)法吸引優(yōu)質(zhì)的內(nèi)容,就陷入了先有雞還是先有蛋的悖論。
爬蟲(chóng),低成本、快速地解決了這個(gè)問(wèn)題!
“我們不生產(chǎn)新聞,我們只是新聞的搬運(yùn)工”,通過(guò)爬蟲(chóng),低成本、快速地爬取整個(gè)互聯(lián)網(wǎng)的優(yōu)質(zhì)內(nèi)容,并憑借海量數(shù)據(jù),利用算法實(shí)現(xiàn)內(nèi)容分類和個(gè)性推薦(個(gè)性推薦系統(tǒng)會(huì)在后序章節(jié)詳細(xì)介紹),吸引大量的用戶,最終通過(guò)廣告變現(xiàn)。
事實(shí)證明,這是個(gè)非常成功的商業(yè)模式。而媒體平臺(tái)和新聞網(wǎng)站雇傭大量編輯人員,花費(fèi)大量時(shí)間、金錢(qián)寫(xiě)成的高質(zhì)量?jī)?nèi)容,連說(shuō)一聲都沒(méi)有,就這樣被拿走了,這不是侵犯人家版權(quán)嘛!
于是,多家媒體聯(lián)合發(fā)起侵權(quán)訴訟或抗議聲討,最終迫使這家新聞巨頭支付版權(quán)費(fèi),但無(wú)論法律上、道德上有多少問(wèn)題,都不影響這家公司商業(yè)成功的既定事實(shí)。
類似的事情同樣發(fā)生在其他垂直領(lǐng)域。
一家新成立的技術(shù)博客平臺(tái),爬取競(jìng)爭(zhēng)對(duì)手上的文章,迅速實(shí)現(xiàn)優(yōu)質(zhì)內(nèi)容的聚合。如果原博客主發(fā)現(xiàn)了自己的文章被盜用了,新的平臺(tái)就移交賬號(hào)并看情況給予少許補(bǔ)償。如果對(duì)方不樂(lè)意,就注銷賬號(hào),當(dāng)一切都沒(méi)有發(fā)生過(guò)。憑借這種運(yùn)營(yíng)方式,順利實(shí)現(xiàn)了冷啟動(dòng)。
短視頻APP的后來(lái)者,也可以通過(guò)類似的方式,實(shí)現(xiàn)用戶的積累和優(yōu)質(zhì)內(nèi)容的聚合。
勝利即正義?
這似乎是過(guò)于武斷的一個(gè)評(píng)價(jià)。
上述的視頻APP做得太過(guò)分,引起公憤,最終不得不關(guān)閉自己的平臺(tái)。
對(duì)于通過(guò)爬蟲(chóng)獲取內(nèi)容的平臺(tái)而言,內(nèi)容的獲取也只是萬(wàn)里長(zhǎng)征的第一步,通過(guò)運(yùn)營(yíng)手段減小生產(chǎn)內(nèi)容的成本,通過(guò)利益共享激勵(lì)優(yōu)質(zhì)內(nèi)容的產(chǎn)生,通過(guò)技術(shù)減小信息成本吸引用戶,更加任重而道遠(yuǎn)。
而版權(quán),也始終是懸于頭頂?shù)倪_(dá)摩克利斯之劍。
本文由@linghu 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash, 基于CC0協(xié)議
每個(gè)電腦的IP這個(gè)不正確吧,訪問(wèn)服務(wù)器一般都是公網(wǎng)IP,只能說(shuō)是一個(gè)區(qū)域的IP地址吧
謝謝,我要爬了你這篇文章
三篇文章都是干貨,有理有據(jù),可以加個(gè) l__eon 相互學(xué)習(xí)一下嗎
樓主,我要爬了你這篇文章 ??
想知道那個(gè)上述視頻APP是
刷寶
這么好的文章最近怎么評(píng)論變少了呢?