Google搜索結(jié)果頁(yè)(SERP)的抓取,對(duì)SEO從業(yè)人員等都有很大的幫助,通過(guò)抓取SERP我們可以監(jiān)測(cè)網(wǎng)站的排名情況、PPC廣告的情況、鏈接流行度等數(shù)據(jù)。
Google作為最大的搜索引擎,有著最大的抓取程序Googlebot,但是他卻禁止其他網(wǎng)站抓取他的頁(yè)面。Google使用了大量的技術(shù)來(lái)檢測(cè)和阻止自動(dòng)請(qǐng)求。一旦Google檢測(cè)到自動(dòng)抓取程序,那么會(huì)出現(xiàn)以下幾種情況:
-
提示電腦中了病毒或木馬;
-
提示木馬程序,并要求輸入驗(yàn)證碼;
-
Google會(huì)在一段時(shí)間內(nèi)阻止您的IP訪問(wèn);
-
Google阻止您訪問(wèn)的時(shí)間會(huì)加長(zhǎng)。
Google是怎么檢測(cè)抓取程序的?可能的方法有:
-
通過(guò)IP 地址,IP地址可以作為用戶的唯一標(biāo)識(shí)。
-
關(guān)鍵詞的變化,普通用戶不會(huì)再極短的時(shí)間內(nèi)查詢很多關(guān)鍵詞。
-
抓取頻率,每次抓取的頻率都要在Google限定的范圍內(nèi)。
隱藏抓取跡象,避免被Google屏蔽。
-
首先需要的是一個(gè)可靠地IP代理列表,代理地址需要每有被Google屏蔽掉。最好準(zhǔn)備50-150個(gè)代理地址,一旦Google發(fā)自動(dòng)抓取,千萬(wàn)別繼續(xù)去抓取。
-
保證更換代理IP以后,你的Cookies也隨著變化。
-
通過(guò)在URL中添加&num=100,將搜索結(jié)果的暫時(shí)數(shù)量設(shè)置為最大(100)。
-
不要使用多線程去抓取。
-
Google對(duì)每個(gè)關(guān)鍵詞,僅提供1000個(gè)查詢結(jié)果。
-
在適當(dāng)?shù)臅r(shí)間更換您的代理IP,這是抓取成功的關(guān)鍵。如果你要住區(qū)每個(gè)關(guān)鍵詞300-1000條結(jié)果,需要給每個(gè)關(guān)鍵詞更換一個(gè)IP;如果查詢的結(jié)果小于300個(gè),最好在查詢過(guò)程中uoxia延遲炒作,延遲10-20秒或真假代理數(shù)量。
-
如果返回的是一個(gè)驗(yàn)證碼頁(yè)面,你最好馬上停止現(xiàn)在的行為。
下面是一個(gè)使用PHP寫的抓取Google搜索結(jié)果頁(yè)的代碼。代碼中主要包括有:
-
自動(dòng)代理輪換(使用seo-proxies.com的API),如果你擁有自己的代理IP地址表,可以通過(guò)修改代碼改變它。如果你有seo-proxies.com的license,可以通過(guò)修改scaper.php中的”USERID”和”API-PASSWORD”來(lái)匹配license。
-
自動(dòng)從一個(gè)搜索結(jié)果頁(yè)爬去其他搜索結(jié)果頁(yè)。
-
使用聯(lián)想詞來(lái)增加搜索結(jié)果的數(shù)量。
-
自動(dòng)發(fā)現(xiàn)和移除廣告。
-
將抓取數(shù)據(jù)已數(shù)組方式保存,使用HTML方式或其他格式在前臺(tái)頁(yè)面呈現(xiàn)。
你唯一要做的是把抓取的結(jié)果儲(chǔ)存在數(shù)據(jù)表中,進(jìn)行管理。
代碼下載:http://www.box.net/shared/mz1d48hg1c