lostyazilim
tr.link

php ile google sıralamasını çekmek

4 Mesajlar 1.159 Okunma
acebozum
tr.link

idea idea WM Aracı Kullanıcı
  • Üyelik 27.04.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 448
  • Beğeniler 165 / 44
  • Ticaret 4, (%75)
merhaba arkadaşlar,

bir sitenin hangi anahtar kelimede kaçıncı sırada olduğunu php ile çekmek istiyorum.

$site = "http://www.asdasdasd.com";

$kelime = "asd asd";

$api = "http:// google api url adres";


// işlemler...

// çıktı
print "15. sıradasınız.";


internette "php google position finder" aramasında çok var ancak hepsi çok ayrıntılı ve kafa karıştırıcı.

öyle teferruatlı bir şey istemiyorum. bu şekilde basit bir php yeterli. lütfen yardımcı olur musunuz? teşekkürler.
 

 

elektronikssl
webimgo

Cadde Media Cadde Media Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 16.06.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek MAKİNA RESSAMI
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 916
  • Beğeniler 4 / 154
  • Ticaret 14, (%100)
Bir kaç sorunu var düzeltirsen çalıştıra bilirsin. Tam deneme fırsatım olmadı.


Post.php



ob_start();
class GPositionFinder {

private $_keyword;
private $_page;
private $_offset = 0;
private $_apiUrl = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=tr&lr=tr&rsz=large&q=";
private $_referer = "http://demo.serpito.com";
private $_results;
private $_position = 0;
private $_output;
private $_outputMethod = 'json';
private $_liste = array();
private $_htmlist;

public function __construct($keyword=null, $page=null) {
$this->setKeyword($keyword);
$this->setPage($page);
}

public function setReferer($value) {
if ($value) {
$this->_referer = $value;
return true;
}
return false;
}

public function setKeyword($value) {
if ($value) {
$this->_keyword = urlencode($value);
return true;
}
return false;
}

public function setPage($value) {
if ($value) {
$this->_page = basename($value);
return true;
}
return false;
}

public function setOutputMethod($value) {
switch ($value) {
case 'json':
$this->_outputMethod = 'json';
break;
case 'text':
$this->_outputMethod = 'text';
break;
default:
return false;
}
return true;
}

public function getPosition() {
return $this->_position;
}

public function getOutput() {
return $this->_output;
}

public function go() {
$this->_offset=0;

if (!$this->_setApiUrl()) {
trigger_error('You must set a valid keyword before calling go().', E_USER_ERROR);
}
if (!$this->_page) {
trigger_error('You must set a valid page to check before calling go().', E_USER_ERROR);
}
while(!$this->_position &amp;&amp; $this->_offset < 40) {
$this->_getNextResultSet();
if (empty($this->_results) || !is_object($this->_results)) {
break;
}
$this->_checkPosition();
}
$output = null;
switch ($this->_outputMethod) {
case 'json':
$output = json_encode(array(
'position' => $this->_position,
'keyword' => urldecode($this->_keyword),
'page' => $this->_page
));
break;
case 'text':
$output = "position={$this->_position}&amp;keyword=" . rawurldecode($this->_keyword) .
"&amp;page={$this->_page}";
break;
}

return $this->_output = $output;
}

public function liste() {

$this->_offset=0;
if (!$this->_setApiUrl()) {
trigger_error('You must set a valid keyword before calling go().', E_USER_ERROR);
}
if (!$this->_page) {
trigger_error('You must set a valid page to check before calling go().', E_USER_ERROR);
}
$this->_getNextResultSet();

$this->_htmlist="
    ";
    foreach ($this->_results->responseData->results as $key => $result) {
    if(strpos($result->unescapedUrl , $this->_page) !== false){
    $this->_htmlist.="
  • ".$result->unescapedUrl."
  • ";
    }else{
    $this->_htmlist.="
  • ".$result->unescapedUrl."
  • ";
    }
    }
    $this->_htmlist.="
      ";

      return $this->_htmlist;
      }

      private function _setApiUrl($url=null) {
      if (!$this->_keyword) {
      return false;
      }
      $this->_apiUrl = $this->_apiUrl.$this->_keyword;
      return true;
      }

      private function _getNextResultSet() {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $this->_apiUrl . "&amp;start={$this->_offset}");
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_REFERER, $this->_referer);
      $body = curl_exec($ch);
      curl_close($ch);
      $this->_results = json_decode($body);
      }

      private function _checkPosition() {
      foreach ($this->_results->responseData->results as $key => $result) {
      if(strpos($result->unescapedUrl , $this->_page) !== false){
      $this->_position = $this->_offset + 1;
      }
      else {
      $this->_offset++;
      }
      }
      return;
      }

      }
      function GetDomain($url)
      {
      $nowww = ereg_replace('www\.','',$url);
      $domain = parse_url($nowww);
      if(!empty($domain["host"]))
      {
      return $domain["host"];
      } else
      {
      return $domain["path"];
      }
      }
      $url=GetDomain($_POST['url']);
      $keyword=$_POST['keyword'];
      $posFinder = new GPositionFinder($keyword, $url);
      $sonuc=$posFinder->go();
      $xml=json_decode($sonuc);

      ?>

      position >0){ ?>
      keyword ?> aramasında, position?>. sıradasınız

      keyword ?> arama sonuçlarında bulunmuyor.






      index.php



      Google Sıra Bulucu















 

 

idea idea WM Aracı Kullanıcı
  • Üyelik 27.04.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 448
  • Beğeniler 165 / 44
  • Ticaret 4, (%75)
hocam bunu indirmiştim daha önce ama php de class olayını anlamıyorum.

şunu class işine girmeden basit bir hale getirebilirsek ne mutlu. yukarıda anlattığım gibi basit olsun yeter.
 

 

Cadde Media Cadde Media Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 16.06.2013
  • Yaş/Cinsiyet 28 / E
  • Meslek MAKİNA RESSAMI
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 916
  • Beğeniler 4 / 154
  • Ticaret 14, (%100)

idea adlı üyeden alıntı

hocam bunu indirmiştim daha önce ama php de class olayını anlamıyorum.

şunu class işine girmeden basit bir hale getirebilirsek ne mutlu. yukarıda anlattığım gibi basit olsun yeter.


Yapacağın işlem basit olsa yaparsın :)
 

 

wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al