首先百度的抓取器會(huì)和網(wǎng)站的首頁(yè)進(jìn)行交互,拿到網(wǎng)站首頁(yè)之后會(huì)對(duì)頁(yè)面進(jìn)行理解,理解包含(類(lèi)型、價(jià)值計(jì)算),其次會(huì)把網(wǎng)站首頁(yè)的所有超鏈接提取出來(lái)。
如上圖所示,首頁(yè)的超鏈接被稱為“后鏈”,等到下一輪抓取的時(shí)候,抓取器會(huì)繼續(xù)和這些超鏈接的頁(yè)面進(jìn)行交互,拿到頁(yè)面進(jìn)行提煉,依次不斷一層一層的抓取,這就構(gòu)成了抓取環(huán)路。
任何一個(gè)資源都是通過(guò)URL來(lái)抓取的,URL相對(duì)于網(wǎng)站的門(mén)牌號(hào),那么URL的規(guī)劃就非常重要了。尤其是如上圖所示,“待抓URL”的環(huán)境,爬蟲(chóng)在首頁(yè)的時(shí)候,并不知道URL是什么樣子。
優(yōu)秀的URL的特點(diǎn)是主流的、簡(jiǎn)單的,竟可能不要去做一些非主流的樣式,讓人看起來(lái)很直觀的URL。
優(yōu)秀URL示例:
如上圖所示,第一條是百度知道的鏈接,整個(gè)鏈接分成三段,第一段是網(wǎng)站的站點(diǎn),第二段是資源類(lèi)型,第三段是資源的ID。這種就是非常簡(jiǎn)單,并且爬蟲(chóng)看起來(lái)非常優(yōu)質(zhì)的URL。
如上圖所示,第三條相對(duì)百度知道多了一個(gè)段,首先第一段是網(wǎng)站的站點(diǎn),第二段是站點(diǎn)的一級(jí)目錄,第三段是站點(diǎn)的二級(jí)目錄,最后一段是站點(diǎn)的內(nèi)容ID。像這種的URL也是符合標(biāo)準(zhǔn)的。
不友好的URL示例:
如上圖所示,這種鏈接一看就很長(zhǎng)很復(fù)雜,有經(jīng)驗(yàn)的站長(zhǎng)都看得出,這種URL包含了字符,這個(gè)URL內(nèi)包含了文章的標(biāo)題,導(dǎo)致URL偏長(zhǎng),一個(gè)偏長(zhǎng)的URL相對(duì)比簡(jiǎn)單的URL是不占優(yōu)勢(shì)的,百度站長(zhǎng)平臺(tái)的規(guī)則有明確的說(shuō)到URL不能超過(guò)256字節(jié),個(gè)人建議URL長(zhǎng)度控制在100字節(jié)之內(nèi),100個(gè)字符足夠展現(xiàn)出URL的資源了。
如上圖所示,這段URL包含統(tǒng)計(jì)參數(shù),可能會(huì)導(dǎo)致重復(fù)抓取,浪費(fèi)站點(diǎn)權(quán)益,所以竟可能不使用參數(shù),如果一定要使用參數(shù),那么也可以保留必要參數(shù),參數(shù)字符竟可能使用常規(guī)的連接符,比如“?”、“&”,避免非主流連接符。
爬蟲(chóng)是從首頁(yè)開(kāi)始一層一層抓取的,所以就需要做好首頁(yè)與資源頁(yè)的URL關(guān)系。這樣爬蟲(chóng)抓取相對(duì)而言比較省力。
如上圖所示,從首頁(yè)到具體內(nèi)容的超鏈路徑關(guān)系叫做發(fā)現(xiàn)鏈路,目前大多數(shù)移動(dòng)站沒(méi)有太注意發(fā)現(xiàn)鏈路的關(guān)系,所以導(dǎo)致爬蟲(chóng)無(wú)法抓取到內(nèi)容頁(yè)。
如上圖所示,這兩個(gè)站點(diǎn)是移動(dòng)網(wǎng)站常見(jiàn)的建站方式,從發(fā)現(xiàn)鏈路的角度來(lái)講,這兩類(lèi)站點(diǎn)是不友好。
Feed流推薦:
大多數(shù)做feed流的站點(diǎn)后臺(tái)是有非常多的數(shù)據(jù),用戶不斷的刷會(huì)有新的內(nèi)容出現(xiàn),但你刷新的次數(shù)再多,可能也只能刷到1%左右的內(nèi)容,而爬蟲(chóng)相當(dāng)于一個(gè)用戶,爬蟲(chóng)不可能做到以這種方式將網(wǎng)站所有的內(nèi)容都爬取到,所以就會(huì)導(dǎo)致一些頁(yè)面爬蟲(chóng)不到,即使你有100萬(wàn)的內(nèi)容,可能只能抓取到1-2萬(wàn)。
僅有搜索入口:
如上圖所示,首頁(yè)只有一個(gè)搜索框,用戶需要輸入關(guān)鍵詞,才能找到對(duì)應(yīng)的內(nèi)容,但爬蟲(chóng)不可能做到輸入關(guān)鍵詞然后再去爬取,所以爬蟲(chóng)只能爬取到首頁(yè)后,就沒(méi)有后鏈了,自然抓取和收錄就會(huì)不理想。
解決方案:
索引頁(yè)下的內(nèi)容按發(fā)布時(shí)間逆序排序的,這樣做有一個(gè)好處,搜索引擎可以通過(guò)索引頁(yè)即使的抓取到你網(wǎng)站最新的資源,另外新發(fā)布的資源要實(shí)時(shí)在索引頁(yè)同步,很多純靜態(tài)的網(wǎng)頁(yè),內(nèi)容更新了,但是首頁(yè)(索引頁(yè))卻沒(méi)有出來(lái),這樣會(huì)導(dǎo)致搜索引擎通過(guò)索引頁(yè)無(wú)法即使的抓取到最新的資源,第三個(gè)點(diǎn)是后鏈(最新文章)的URL需要直接在源碼在露出,方便搜索引擎抓取,最后就是索引頁(yè)不是越多越好,有少數(shù)優(yōu)質(zhì)的索引頁(yè)就足夠了,比如長(zhǎng)城號(hào),基本上只利用首頁(yè)來(lái)做索引頁(yè)。
最后這里和大家說(shuō)一個(gè)更高效的解決方案,那就是直接通過(guò)百度站長(zhǎng)資源平臺(tái)去主動(dòng)提交資源,這樣搜索引擎可以繞過(guò)索引頁(yè)直接抓取到最新資源,這里需要注意兩個(gè)點(diǎn)。
Q:資源提交是不是越多越好?
A:收錄效果的核心永遠(yuǎn)是內(nèi)容質(zhì)量,如果大量提交低質(zhì)、泛濫資源會(huì)導(dǎo)致懲罰性打擊。
Q:為什么提交了普通收錄但沒(méi)有抓?
A:資源提交只能加速資源發(fā)現(xiàn),不能保證短時(shí)間內(nèi)抓取,當(dāng)然百度方面表示,算法在持續(xù)優(yōu)化,讓優(yōu)質(zhì)的內(nèi)容更快得到抓取。
抓取器要和網(wǎng)站進(jìn)行交互,要保證網(wǎng)站的穩(wěn)定的,抓取器才能夠正常的爬取。那么訪問(wèn)友好性主要包括以下幾個(gè)方面。
訪問(wèn)速度優(yōu)化:
加載時(shí)間建議控制在2S以內(nèi),那么無(wú)論是用戶還是爬蟲(chóng),對(duì)于打開(kāi)速度更快的網(wǎng)站,都會(huì)更加青睞,其次是避免非必要的跳轉(zhuǎn),這種情況雖然是少部分,但依然有網(wǎng)站出現(xiàn)很多級(jí)的跳轉(zhuǎn),那么對(duì)于爬蟲(chóng)來(lái)講,很有可能在多級(jí)跳轉(zhuǎn)的同時(shí)就斷開(kāi)了。常見(jiàn)的有做了不帶www的域名跳轉(zhuǎn)到帶WWW的域名上,然后帶WWW的域名又要跳轉(zhuǎn)到https上,最后更換新站,這種情況就出現(xiàn)了三四級(jí)的跳轉(zhuǎn)。如果出現(xiàn)類(lèi)似網(wǎng)站改版,建議直接全部跳轉(zhuǎn)到新域名上。
規(guī)范http狀態(tài)碼:
我們常見(jiàn)的301/302的正確使用,以及404的正確使用,主要是常規(guī)的問(wèn)題,用常規(guī)的方式來(lái)解決,比如遇到無(wú)效資源,那么就使用404來(lái)做,不要用一些特殊的返回狀態(tài)碼了。
訪問(wèn)穩(wěn)定性優(yōu)化:首先盡可能選擇國(guó)內(nèi)大型的DNS服務(wù),以保證站點(diǎn)的穩(wěn)定性,對(duì)于域名的DNS,實(shí)際上阿里云還是比較穩(wěn)定靠譜的,那么其次是謹(jǐn)慎使用技術(shù)手段封禁爬蟲(chóng)抓取,如果說(shuō)有特定資源不希望在百度上展現(xiàn),那么可以采用robots來(lái)屏蔽,比如說(shuō)網(wǎng)站的后臺(tái)鏈接,大多數(shù)都是通過(guò)robots屏蔽的。如果說(shuō)抓取頻次太高,導(dǎo)致服務(wù)器壓力過(guò)大,影響用戶正常訪問(wèn),那么可以通過(guò)資源平臺(tái)的工具降低抓取頻率。其次是避免防火墻誤封禁爬蟲(chóng)抓取,那么這里建議大家可以把搜索引擎的UA加入到白名單。最后一點(diǎn)是服務(wù)器的穩(wěn)定性,特別是在短時(shí)間內(nèi)提交大量?jī)?yōu)質(zhì)資源,這個(gè)時(shí)候一定要關(guān)注服務(wù)器穩(wěn)定性,因?yàn)楫?dāng)你提交大量資源后,爬蟲(chóng)會(huì)隨之增加,這個(gè)時(shí)候會(huì)不會(huì)導(dǎo)致你服務(wù)器壓力過(guò)大而打不開(kāi),這個(gè)問(wèn)題是需要站長(zhǎng)關(guān)注的。
如上圖所示,這三個(gè)例子就是第三方防火墻攔截的一個(gè)狀態(tài),當(dāng)正常用戶打開(kāi)是這個(gè)狀態(tài)的時(shí)候,搜索引擎抓取的時(shí)候,也會(huì)處于這個(gè)狀態(tài),所以如果遇到CC或者DDOS的時(shí)候,我們開(kāi)啟防火墻的前提,一定要放開(kāi)搜索引擎的UA。
Q:新站會(huì)不會(huì)有一個(gè)的抓取限制?
A:對(duì)于任何一個(gè)新站來(lái)講,都沒(méi)有抓取限制,不過(guò)去年開(kāi)始,我們已經(jīng)開(kāi)始對(duì)新站有一個(gè)扶持,讓你的網(wǎng)站,先在百度上收錄起來(lái)。然后再進(jìn)行一個(gè)價(jià)值判斷,那么如何讓百度知道你是一個(gè)新站,有兩個(gè)捷徑,第一個(gè)是去百度資源平臺(tái)提交,第二個(gè)點(diǎn)是去工信部做ICP的備案,我們可以從工信部拿到ICP備案的數(shù)據(jù),備案之后我們就知道有人建了一個(gè)新的站點(diǎn),這樣就可以給新站一個(gè)基礎(chǔ)的流量扶持。
Q:每個(gè)站點(diǎn)蜘蛛抓取的配額都會(huì)有調(diào)整,大概多久調(diào)整一次?
A:確實(shí)會(huì)有調(diào)整,對(duì)于新資源會(huì)與你抓取頻率相關(guān),對(duì)于舊資源會(huì)與你內(nèi)容質(zhì)量相關(guān),如果說(shuō)新資源的質(zhì)量有變化,那么抓取頻率也會(huì)有變化,網(wǎng)站的規(guī)模有變化,那么抓取的頻率也會(huì)有變化,如果說(shuō)有很大的改版,那么抓取頻率相對(duì)而言也會(huì)有變化。
Q:網(wǎng)站降權(quán)能不能恢復(fù)?
A:網(wǎng)站降權(quán)恢復(fù)的前提是我們會(huì)對(duì)網(wǎng)站進(jìn)行重新評(píng)估,查看網(wǎng)站是不是有整改,如果有整改是不是做了404,并且有提交到資源平臺(tái),如果說(shuō)完全符合要求后,搜索引擎會(huì)經(jīng)過(guò)評(píng)估后,對(duì)沒(méi)有違規(guī)的網(wǎng)站進(jìn)行恢復(fù)。
Q:新站點(diǎn)是不是有考核期?
A:對(duì)我們來(lái)講是沒(méi)有一個(gè)考核期這么一個(gè)東西,我們前面也講到了,竟可能會(huì)對(duì)新站的一個(gè)流量扶持,假設(shè)一個(gè)新站點(diǎn)流量扶持1-2個(gè)月以后,發(fā)現(xiàn)網(wǎng)站繼續(xù)保持這種狀態(tài),那么就不會(huì)有一個(gè)太大的調(diào)整,當(dāng)發(fā)現(xiàn)網(wǎng)站質(zhì)量有明顯的提升,那么我們也會(huì)相應(yīng)的提升百度排名。
Q:百度對(duì)外國(guó)的服務(wù)器和國(guó)內(nèi)的服務(wù)器有沒(méi)有區(qū)別對(duì)待?
A:策略角度上來(lái)件,沒(méi)有硬性區(qū)別對(duì)待,但是很多外國(guó)的服務(wù)器對(duì)國(guó)內(nèi)部分區(qū)域封禁,以及國(guó)外服務(wù)器網(wǎng)站備案的角度上來(lái)講,國(guó)內(nèi)的服務(wù)器都具有優(yōu)勢(shì)。
Q:新站舊域名是不是更有優(yōu)勢(shì)?
A:如果說(shuō)老域名和新站是相同的內(nèi)容,確實(shí)在起步階段有一定的優(yōu)勢(shì),但僅僅是起步階段,后期還是要看內(nèi)容的質(zhì)量,特別要注意的是,如果說(shuō)老域名的行業(yè)和你新網(wǎng)站的內(nèi)容不相關(guān),即使是所謂高權(quán)重的老域名,也會(huì)適得其反。百度會(huì)認(rèn)為你今天做這個(gè),明天做那個(gè),效果還不如重新做一個(gè)新域名。