向治霖
爛尾的新聞很多,本不值得驚奇。年初的拼多多,熱點(diǎn)一個(gè)賽似一個(gè),但到最后,仍是草草收場了。
這也難怪,現(xiàn)今的社交媒體,稱呼圍觀的人“吃瓜群眾”。瓜吃飽了,僅剩一點(diǎn)瓜皮,自然是要扔掉的。具體到拼多多的事件,剩下的這點(diǎn)瓜皮,應(yīng)是尚未落定的“爬蟲”事件。
但這點(diǎn)瓜皮,尚還有味,棄之可惜。
對事件大致復(fù)盤:因拼多多一名員工的疑似猝死,“996”受到聲討。眾人正酣時(shí),一名拼多多員工自曝,只因?yàn)榕牧艘粡埦茸o(hù)車開到公司的照片、隨后上傳網(wǎng)絡(luò)并配文,他被公司定位找到,接著被“惡意辭退”。
拼多多負(fù)責(zé)危機(jī)處理的部門,保持了一貫水平。此前回應(yīng)員工的疑似猝死時(shí),拼多多官方賬號反問網(wǎng)民,稱:“你看底層的人民,哪一個(gè)不是用命換錢?!彪m然拼多多很快刪除,并試圖否認(rèn)這個(gè)發(fā)言,但被平臺網(wǎng)站知乎一把做實(shí),耳光響亮。
輪到“惡意辭退”事件,拼多多官方發(fā)文解釋,辭退員工并非因?yàn)榕恼丈蟼?,而是公司發(fā)現(xiàn),該員工在社交平臺脈脈發(fā)表“極端言論”,違反了員工手冊。
壞就壞在,脈脈有著匿名功能,且涉事員工發(fā)言時(shí)均已匿名。拼多多是怎么獲取了信息的?
拼多多的應(yīng)對,猶如一把多米諾骨牌,先拉上了知乎,后推倒了脈脈。
1月10日,脈脈官方連忙澄清,稱信息經(jīng)過了技術(shù)加密,“即便是脈脈內(nèi)部工作人員,也無法獲取任何個(gè)人相關(guān)信息”,意思是說,在脈脈上的發(fā)言信息是安全的,不存在泄露問題。
同時(shí),脈脈強(qiáng)調(diào),在遵守法律的前提下,公司不以任何形式向任何第三方提供發(fā)帖用戶信息。言下之意,否認(rèn)與拼多多“勾兌”。
但疑問沒有解決,拼多多拿到的信息,“白紙黑字”地寫在通報(bào)上,它是如何實(shí)現(xiàn)的?
涉事員工“王太虛”在知乎上的更新,目前截止于1月10日。他發(fā)文推測:“公司沒有查我手機(jī),而是直接找到了我。初步判斷是,(我)被公司對脈脈的爬蟲定位到了本人。”
這話有些繞。“王太虛”的推測是,拼多多對脈脈定制了爬蟲,爬取了脈脈的數(shù)據(jù)庫信息,再從這些信息中定位到他。
至此,拼多多的一系列風(fēng)波,終于接近了尾聲。漸漸地,沒有人再討論。
爬蟲這塊“瓜皮”, 吃瓜群眾難以下咽,可能的原因是,這瓜有一定的技術(shù)門檻。
但理解爬蟲并不難。
先看拼多多的官方回應(yīng),在1月11日的通報(bào)中,拼多多列出了涉事員工的“極端言論”。據(jù)拼多多羅列,第一條信息是“王太虛”提到的救護(hù)車事件,但發(fā)言用戶為匿名。
拼多多特意用紅線,標(biāo)注出附在用戶名后的ID,“ID:JgD+STsWV2E”。
爭議也是因此來的,救護(hù)車事件的信息,發(fā)表于2021年1月7日。但拼多多接著羅列,將該ID的發(fā)言繼續(xù)挖掘,如一條2020年10月22日的言論,提到“希望阿里的物流封殺狠一點(diǎn),把拼多多的那個(gè)XX骨灰都揚(yáng)了”。
這仍是一條匿名發(fā)言,但用戶名后的ID,同為“ID:JgD+STsWV2E”,拼多多也用紅線標(biāo)注了出來。
拼多多的追溯不止于此,在通報(bào)中,還列出一個(gè)表格,其中有四條涉事員工的“極端言論”。發(fā)表時(shí)間分布于2020年的10月、11月、12月。
如“王太虛”的推測,在技術(shù)人員看來非常合理。在通報(bào)中,拼多多羅列數(shù)據(jù)的規(guī)律,極符合爬蟲的工作原理。這是因?yàn)?,匿名發(fā)表的信息,并不在實(shí)名賬戶的列表中。比如說,同一個(gè)賬戶,發(fā)一條實(shí)名動態(tài),再發(fā)一條匿名動態(tài),則該賬戶下的動態(tài)列表中,只顯示實(shí)名的那條,否則匿名無意義。
爬蟲這塊“瓜皮”, 吃瓜群眾難以下咽,可能的原因是,這瓜有一定的技術(shù)門檻。
這意味著,拼多多得到的信息,本藏身于脈脈龐大數(shù)據(jù)的角落里。
另一方面,由于唯一的標(biāo)志物是一串字符,字符藏在字符里,本不容易被發(fā)覺(對一般互聯(lián)網(wǎng)用戶)。
那么,爬蟲便是一種合理的解釋。
爬蟲有兩個(gè)名字,Google公司的爬蟲叫“bot”(機(jī)器人),百度公司的爬蟲叫“spider”(蜘蛛)。兩個(gè)名字都很形象,結(jié)合起來,爬蟲即是指,一種在網(wǎng)絡(luò)上游走的、自動化操作的程序。
它的用武之地在數(shù)據(jù)。而在互聯(lián)網(wǎng)上,數(shù)據(jù)都有屬性和標(biāo)簽,否則數(shù)據(jù)就是雜亂無章的。前文提到的ID,就是數(shù)據(jù)的一個(gè)屬性,且是標(biāo)識性極強(qiáng)的屬性。
如是,理解爬蟲的原理就簡單了。設(shè)計(jì)者需要做的,是為爬蟲制定規(guī)則,爬取特定的屬性/標(biāo)簽下的數(shù)據(jù)。
Python是近年流行的編程語言,以它為例,可以了解爬蟲的工作原理:
假設(shè),張三在知乎注冊賬戶,用戶名叫“張三”?,F(xiàn)在,我們要爬取他的所有動態(tài)信息。第一步,我們需要找到的,是張三評論所在的網(wǎng)址(url)。
得到了對應(yīng)網(wǎng)址,下一步調(diào)用模塊request.get(),字面意義是:向服務(wù)器發(fā)起請求、獲取該網(wǎng)址的數(shù)據(jù)。那么,張三評論的所有數(shù)據(jù),就都在其中了。
此時(shí),我們想要的評論,依然藏在一堆龐雜的字符中。所以,在接下來,我們需要確定數(shù)據(jù)的性質(zhì),如用戶名是張三(name =‘ zhangsan),將這一屬性的數(shù)據(jù)篩選出來。
所謂爬蟲的規(guī)則,即是經(jīng)過層層篩選,最終得到目標(biāo)信息。這還沒完。
上述的步驟,只是自動化地獲取、篩選了數(shù)據(jù),但沒有羅列出來。當(dāng)數(shù)據(jù)量極大時(shí),一條一條羅列數(shù)據(jù),顯然并不現(xiàn)實(shí)。因此,爬蟲的設(shè)計(jì)者,還要制定一定的規(guī)則,將數(shù)據(jù)按規(guī)則打印。如,列出張三的評論內(nèi)容、評論時(shí)間、評論網(wǎng)址……
如此操作完,會自動生成一個(gè)數(shù)據(jù)表格(格式可能不同),爬蟲的工作就結(jié)束了。在這張表格中,張三評論的所有信息,一望可知。
正因如此,拼多多1月11日的回復(fù)中,那張表格尤其可疑。表格中羅列了四條“極端言論”,且信息的屬性完整,分別是用戶名、ID、內(nèi)容、時(shí)間、網(wǎng)址。更增加了嫌疑的是,“屬性”用英文寫成:username\ID\comment\time\url,這是符合編程規(guī)范的。
對此,拼多多官方?jīng)]有回應(yīng)質(zhì)疑。
但在1月11日,據(jù)媒體報(bào)道,拼多多相關(guān)人員回復(fù),否認(rèn)信息是通過爬蟲獲取,并解釋道,“是公司多人通過公開的網(wǎng)頁瀏覽,搜索、比對發(fā)帖賬戶ID發(fā)現(xiàn)的”。
這一解釋并非不可能。但如前文所述,僅憑一串標(biāo)識字符(ID),人工地瀏覽海量數(shù)據(jù),并且追溯了三個(gè)月內(nèi)的信息,再一個(gè)一個(gè)列表出來,工作量是龐大的。
當(dāng)然,不能排除拼多多日以繼夜地“996”式搜查,且“公司多人”指的是很多很多很多人。
無論如何,質(zhì)疑與辯解的雙方,都沒有拿出證據(jù)來。究竟是何種獲取方式,現(xiàn)今只能各憑各據(jù)。
雞毛撒了一地后,有不少網(wǎng)友揶揄,最大的“受害者”是脈脈。這一次事件,暴露了匿名社區(qū)的不可靠。如前文所說,無論是爬蟲技術(shù),或者是人海戰(zhàn)術(shù),都可以破解脈脈的匿名機(jī)制。
罪魁禍?zhǔn)自谟?,ID這一標(biāo)識性極強(qiáng)的屬性,在脈脈的網(wǎng)頁中居然“明文顯示”—對匿名社區(qū)來說,這是不可思議的。
此處的“明文”,對普通用戶不成立。這是因?yàn)?,即使外顯了ID,普通用戶也無法據(jù)此搜索。但對有一定網(wǎng)頁設(shè)計(jì)知識的人來說,只需打開“查看網(wǎng)頁源代碼”,所有數(shù)據(jù)都在眼前,而ID就成為可追查的“錨”。
是的,在大多數(shù)網(wǎng)站上,用戶的行為全被記錄下來。對具備一定技術(shù)的人來說,用戶們都是“透明人”。
是的,在大多數(shù)網(wǎng)站上,用戶的行為全被記錄下來。對具備一定技術(shù)的人來說,用戶們都是“透明人”。
通俗的解釋是,普通用戶每一次的點(diǎn)擊鏈接,是一次對服務(wù)器的請求(request),而每一次網(wǎng)頁的呈現(xiàn),是服務(wù)器對請求作出的回應(yīng)(response)。這一切對技術(shù)人員來說,全部有跡可循。如果有心,通過對請求的分析,就可以獲知請求者的身份、設(shè)備、IP地址等信息。
不過,人工查找費(fèi)時(shí)費(fèi)力,在有了爬蟲代勞后,性質(zhì)也就不同了。數(shù)據(jù)可以批量地、有規(guī)則地獲取,且過程自動化,所占的不過是存儲而已。
惡意爬蟲的存在,顯然是對信息/數(shù)據(jù)安全的威脅。包括脈脈在內(nèi),大多數(shù)網(wǎng)站上,都設(shè)計(jì)有“機(jī)器人協(xié)議”,其中規(guī)定了,哪些信息不允許爬取(disallow),哪些信息允許爬?。╝llow)。
打開脈脈的“機(jī)器人協(xié)議”,規(guī)定不許爬取的內(nèi)容共18項(xiàng),其后的允許項(xiàng)目,分別是對“360”和“haosou”公司的爬蟲開放?!阉饕姹旧硎桥老x,將爬取到的數(shù)據(jù)存入服務(wù)器,以供用戶的搜索之用。因此,對搜索引擎開放爬蟲協(xié)議,是為了獲取關(guān)注度,這無可非議。
那就是說,在原則上,除了360和haosou,其它爬蟲無權(quán)爬取脈脈數(shù)據(jù)。但在現(xiàn)實(shí)生活中,這個(gè)原則幾乎等于不存在。
原因有兩方面。一是技術(shù)層面,網(wǎng)址雖然拒絕爬蟲,但爬蟲的設(shè)計(jì)者可以偽裝,將爬蟲行為模擬為人類的行為,比如偽造“請求頭”(request header),設(shè)計(jì)訪問次數(shù)、時(shí)間間隔等。
二是法律方面,事實(shí)上,“機(jī)器人協(xié)議”沒有強(qiáng)制力。司法實(shí)踐中,截至目前,沒有因違反“機(jī)器人協(xié)議”而入罪的案例。主流的觀點(diǎn)認(rèn)為,它是一種技術(shù)協(xié)議,而非法律認(rèn)可的規(guī)范。
也因此,機(jī)器人協(xié)議被戲稱“君子協(xié)議”。但很顯然,一個(gè)行業(yè)如果靠道德自律,“君子”是遠(yuǎn)遠(yuǎn)不夠用的。