Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odpytywanie Google poprzez Google API
Forum PHP.pl > Forum > Przedszkole
Speed666
Witajcie,
Potrzebowałem napisać skrypt ktory mi sprawdzi pozycje podanego adresu na podane słowo kluczowe w google.

Napisałem coś takiego:
  1. <?php
  2.  
  3. function CheckGoogle($host,$query) {
  4.  
  5.  
  6. $soapclient = new soapclient(&#092;"http://api.google.com/GoogleSearch.wsdl\",\"wsdl\");
  7.  
  8. $ktory = 0;
  9.  
  10. for ($i=0;$i<5;$i++) { //Pierwsze 50 wyników
  11.  
  12. $start = $i * 10;
  13.  
  14.  
  15. $params = array('key'  => 'TUTAJ KLUCZ',
  16.  
  17. 'q'  => $query,
  18.  
  19. 'start'  => $start,
  20.  
  21. 'maxResults' => 10,
  22.  
  23. 'filter' => true,
  24.  
  25. 'restrict' => '',
  26.  
  27. 'safeSearch' => false,
  28.  
  29. 'lr' => '',
  30.  
  31. 'ie' => 'latin',
  32.  
  33. 'oe' => 'latin'
  34.  
  35. );
  36.  
  37. //$params[q] = plCharset($params[query], WIN1250_TO_UTF8);
  38.  
  39.  
  40. $result = $soapclient->call(&#092;"doGoogleSearch\", $params);
  41.  
  42.  
  43. /*
  44. foreach($result['resultElements'] as $v) {
  45.  
  46. //echo $v['URL'];
  47.  
  48. if (strpos($v['URL'],$host)) {
  49.  
  50. $break = 1;
  51.  
  52. break;
  53.  
  54. }
  55.  
  56. $ktory++;
  57.  
  58.  
  59. }
  60.  
  61. */
  62. if ($break) break;
  63.  
  64. }
  65.  
  66.  
  67. return $ktory;
  68.  
  69. }
  70.  
  71. $co = &#092;"www.adres.pl\";
  72.  
  73. $gdzie = CheckGoogle ($co,&#092;"slowo kluczowe\");
  74.  
  75. ?>

Nie wiem jednak dlaczego - ale skrypt ten jest strasznie wolny - wykonuje się około 20 sekund - co jest stanowczo za długo.
Nie jest to wina pętli foreach - zakomentarzowana skróciła czas pracy o nieodczywalne minimum.
Gdzie zrobiłem błąd?.
crashdj
5 razy google pytasz o 10 kolejnych wyników wyszukiwania

for ($i=0;$i<5;$i++) { //Pierwsze 50 wyników



wydaje mi sie ze stad to opoznienie.
Z szybkoscia skryptu nic sie nie poradzi. Mozna ew. odpalic CRONa i wyniki zapisywac do bazy, serwer jest bardziej cierpliwy od czlowieka smile.gif.


Mam bardzo podobny skrypt jednak nie dziala mi na serwerze z PHP5.

SOAP jest wbudowany w PHPa 5,
i taka skladnia nie dziala:

$soapclient=new SoapClient('http://api.google.com/GoogleSearch.wsdl',$parameters);


Moze ktos mi pomoze jak sie odwolywac do class SOAPa w PHP5.
Chodzi mi o API google.
Gość
Moze tan artykul Ci pomoze?

Implementacja Google API we własnym serwisie
crashdj
Już się dawno z tym skryptem uporałem.
Finał był taki, że całkowicie zrezygnowałem z google API.

Problem rozwiązała funkcja file_get_contents(), pobierająca zawartość strony www i zapisująca wynik do pliku HTML.
Mając strone HTML - wynik z wyszukiwarki, za pomocą operacji na ciągach tekstowych można wyodrebnić poszczególne elementy strony i je policzyć.
Choć jest to sposób nielegalny zabroniony przez google, działa o wiele sprawniej niż goolge api winksmiley.jpg.

W podobny sposób można przetwarzać strony wp, onetu i innych wyszukiwarek.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.