Вот как я делал это в прошлом с помощью запроса cURL и API Google AJAX:
function getResults($term,$page = 0){
$googleurl = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".(str_replace(' ','+',$term);
if($page >0){
$googleurl .= "&start=".($page*10);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$googleurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$Page_Contents = curl_exec($ch);
curl_close($ch);
return $Page_Contents;
}
$keywordCheck = array('ajax','php','cURL','other search terms');
foreach($keywordCheck as $wordKey => $wordValue){
$term = str_replace(' ','+',$wordValue);
for($i =0; $i < 5; $i++){
$page = getResults($term,$i);
if(preg_match("/mysite.com/",$page)){
$links = explode('GsearchResultClass',$page);
foreach ($links as $key => $value){
if(preg_match("/mysite.com/",$value)){
preg_match("/url\":\"([^\"]*)\",/",$value,$match);
$match = str_replace('",','',str_replace('url":"','',$match[0]));
$results[$wordValue] .= $wordValue. ' is ranked #'.(($i*10)+($key)).': '.$match.'<br/>';
}
}
}
}
sleep(2);
}
, затем в теле страницы:
<div id="results">
<?php foreach($results as $key => $value){
if($value == ''){
echo '<p>'.$key.' not found in top 50 results</p>';
}
else{
echo '<p>'.$value.'</p>';
}
}?>
</div>
НекоторыеЧто нужно понять:
1) Используйте sleep () для паузы между запросами, чтобы избежать запрета на перегрузку сервера
2) В последний раз, когда я проверял, API поиска ограничивает вас 1000 запросамидень, поэтому планируйте соответственно
3) API запрашивает базу данных, отличную от www.google.com, поэтому результаты могут немного отличаться от тех, которые вы видите при обычном поиске
ЭтоСкрипт просто проверяет позиции моих URL-адресов по определенным ключевым словам, которые я хочу отслеживать в пределах первых 50 результатов ... очевидно, вам нужно будет внести коррективы, если вы не сфокусированы на 1 сайте ...
чтобы добавить пользовательские фильтры, просто выполните «расширенный» поиск и посмотрите на строку запроса, то же самое для API.Просто добавьте по мере необходимости, например, для диапазона дат с 1 января 2011 г. по 24 января 2011 г .:
$googleurl .= '&tbs=cdr%3A1%2Ccd_min%3A1%2F4%2F2011%2Ccd_max%3A1%2F24%2F2011';