[ PHP ] – 用 CURL 爬 google 關鍵字排名

昨天無聊試一下怎麼爬 google 關鍵字排名,花了不少時間,因為用不同的CURLOPT_USERAGENT會有不同的顯示頁面,後來總算爬成功。列出前五十名,但google可不是省油的燈,昨天爬今天就把我鎖了…給我一個302。

所以要做SEO關鍵字排名統計,最好的方式還是用PYTHON 去觸發瀏覽器,這樣就不會被當成爬蟲,然後將統計資料存在本機DB。有時間再來玩看看。

<meta charset="utf-8">
<?php
$key=$_GET['key'];
$ch = curl_init();
$timeout = 60;
curl_setopt($ch, CURLOPT_URL,'https://www.google.com.tw/search?q='.urldecode($key).'&start=0&hl=zh-TW&num=50');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) chrome/34.0.1847.131 Safari/537.36');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$html = curl_exec($ch);

preg_match_all('$(?<=\<div\sclass=\"g\"\>)(.*?)(?=\<\/div\>)$',$html,$target);

for($x=0;$x<=50;$x++){
	echo ($x+1).str_replace('/url?q=','',urldecode($target[1][$x]))."<br />";
}

?>

你可能會喜歡

建立一個對話

你的電子郵件位址並不會被公開。 必要欄位標記為 *