還是在今年6月底,百度就放出全面取消referer關(guān)鍵詞顯示的通知,聽(tīng)說(shuō)目的是為了保護(hù)用戶隱私和站點(diǎn)流量關(guān)鍵詞數(shù)據(jù)。(詳情可查看站長(zhǎng)之家前文百度站長(zhǎng)平臺(tái):將逐步取消referer關(guān)鍵詞顯示)

QQ截圖20150925180429

然而并沒(méi)有什么L用,本來(lái)就不知道誰(shuí)在百度搜索了什么見(jiàn)不得人的事情,隱藏關(guān)鍵詞那不是脫了褲子放屁么?

另外,保護(hù)站點(diǎn)流量關(guān)鍵詞數(shù)據(jù),這一點(diǎn)我倒是覺(jué)得很有用,省的某些人總是去瞄瞄誰(shuí)誰(shuí)誰(shuí)的站點(diǎn)的哪篇文章有個(gè)很牛逼的關(guān)鍵詞,然后吧唧就復(fù)制粘貼了。不過(guò),這個(gè)做法還是無(wú)法完全杜絕,為啥?因?yàn)槟惆俣冗€有一個(gè)百度指數(shù)的功能!別人拿到高指數(shù)的詞一搜就知道那個(gè)誰(shuí)誰(shuí)誰(shuí)的文章排第一了?不過(guò)只是增加了麻煩的程度而已!

說(shuō)個(gè)不好意思的事情,這公告剛出來(lái)的時(shí)候,我其實(shí)是沒(méi)看懂是什么意思的。。。去認(rèn)為從一個(gè)頁(yè)面的鏈接點(diǎn)擊后跳到另一個(gè)頁(yè)面難道不會(huì)產(chǎn)生referer?這不科學(xué)啊!然后我就沒(méi)在意了。。。

直到前不久,偶然發(fā)現(xiàn)張戈博客原創(chuàng)作品【搜索來(lái)路歡迎框】不提示關(guān)鍵詞了:

本以為是我代碼BUG了,于是親自輸出了一下referer看了下,發(fā)現(xiàn)我寫的代碼還是可以拿到referer,可惜referer里面的關(guān)鍵詞wd的值是空的,比如:

https://www.baidu.com/link?url=dEvj7DE-rHNYgoNrzCSrgBLAVrWns06Ub1h8DjGa5mv-gSonnZp9VCYaDBKRmvDV&wd=&eqid=c1a3fa880009ab000000000555fce97f

這時(shí)候又勾起了我的興趣,了解referer 的朋友都知道,當(dāng)我們點(diǎn)擊A頁(yè)面中的鏈接跳轉(zhuǎn)到B頁(yè)面時(shí),B頁(yè)面里面referer 值就是A頁(yè)面地址。

也就是說(shuō),我在百度搜索張戈博客,那么頁(yè)面地址應(yīng)該是:

https://www.baidu.com/s?wd=張戈博客

即A頁(yè)面地址,如果我們從這個(gè)搜索結(jié)果中點(diǎn)開第一個(gè)鏈接來(lái)到張戈博客,那么產(chǎn)生的referer 應(yīng)該就是上面這個(gè)搜索地址才對(duì)!百度是如何做到隱藏這個(gè)關(guān)鍵詞的呢??

前幾天,在寫一個(gè)爬蟲腳本的時(shí)候,破天荒的試了下百度搜索結(jié)果中的鏈接,終于搞懂了這其中的奧妙之處,感覺(jué)挺有意思,所以就把其他原創(chuàng)干貨繼續(xù)壓在草稿箱等發(fā)霉,先把這個(gè)發(fā)現(xiàn)分享下。

就以張戈博客這個(gè)關(guān)鍵詞搜索出來(lái)的地址為例吧!百度搜索張戈博客后的結(jié)果如下圖所示:

接著,我試著在Linux下使用curl請(qǐng)求,發(fā)現(xiàn)如下圖所示:

把結(jié)果格式化了下:


然后我就明白了百度是如何做到隱藏關(guān)鍵詞的了。

比較簡(jiǎn)單,但很巧妙的做法:百度現(xiàn)在的搜索結(jié)果鏈接不再直接跳轉(zhuǎn)到目標(biāo)頁(yè)面,而是通過(guò)了一個(gè)隱藏的中轉(zhuǎn)頁(yè)面。以上代碼的大概功能就是,如果瀏覽器支持Javascript,那么將通過(guò)其中的js函數(shù)跳轉(zhuǎn)到目標(biāo)頁(yè)面,如果瀏覽器不支持Javascript,那么也能通過(guò)最后的META標(biāo)簽讓瀏覽器實(shí)現(xiàn)跳轉(zhuǎn)。

由于有了這個(gè)中間頁(yè)面,那么關(guān)鍵詞也就斷章了,因?yàn)檎嬲嘘P(guān)鍵詞的referer 只能在中間頁(yè)面這取得,目標(biāo)頁(yè)面取得的referer 則是中間頁(yè)面的地址,是沒(méi)有關(guān)鍵詞的!

百度還真是用心良苦??!...

還好我寫的【搜索來(lái)路歡迎框】是兼容空關(guān)鍵詞的,否則顯示的就是 null 了。

既然知道有這么個(gè)巧妙的做法,那我們?cè)谀承﹫?chǎng)景是否可以借鑒一下呢?我想肯定是用得到的,只是你沒(méi)遇到而已。。。比如,你的某頁(yè)面偷偷鏈接了某站的地址,又不想讓站長(zhǎng)知道?不過(guò)這也是夠無(wú)聊的了,哈哈哈!