pozycja strony w google

0

:-D cześć

ktoś gdzieś kiedyś mi powiedział, że można jakimiś zapytaniami pobrać od google dane co do pozycji jakiejś strony w ich wyszukiwarce
czy ktoś coś wie, coś słyszał?

byłbym wdzięczny za jakąś podpowiedź

ewentualnie, pomysł może ktoś ma jak pobrać pozycję strony www.google.pl/searchoogle?
tylko wiecie, uwzględniając data center a nie kog źródłowy www.google.pl/search

0

Ja powinienem teraz zacytować 'data center' i skomentować je za pomocą twojej emotki. Podpisz umowę z Google to będziesz miał swoje data center. Jedynym legalnym sposobem teraz jest użycie Google AJAX Search API.

Tak... Wiem co mówię. Ja też liczyłem na to że przy moim małym robocie używanym co 24h Google nawet nie zorientuje się że to jakikolwiek skrypt. Po kilkunastu godzinach dostałem nie tyle bana co ciekawego rodzaju flood-blocka który umożliwiał mi wykonywanie zapytania raz na 4 sekundy.

Funkcja używająca w/w API:

function googleSearch($q, $s) {
$endpoint = 'web';
$url = "http://ajax.googleapis.com/ajax/services/search/".$endpoint;
$referer = 'http://twojastrona.pl/';

$args = array('q' => $q, 'start' => $s, 'num' => 8);

if ( !array_key_exists('v', $args) )
$args['v'] = '1.0';
 
$url .= '?'.http_build_query($args, '', '&');
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// note that the referer *must* be set
curl_setopt($ch, CURLOPT_REFERER, $referer);
//curl_setopt($ch, CURLOPT_WRITEFUNCTION, "on_curl_write");
$body = curl_exec($ch);
curl_close($ch);
//decode and return the response
return json_decode($body);
}

Jednym zapytaniem możesz pobrać max. 8 wyników, a razem do 64 w głębokości (dalej API nie szuka). Użycie:

$wynik = googleSearch('tanie zapytanie', 0);
$wynik2 = googleSearch('tanie zapytanie', 8);
$wynik3 = googleSearch('tanie zapytanie', 16);
$wynik4 = googleSearch('tanie zapytanie', 24);

Do zmiennej $wynik i trzech podobnych zostanie pobrany OBIEKT. Jeśli nie znasz jego cech to walnij var_dump($wynik);, żeby zobaczyć jakie szczegóły masz tam zapisane. Używam tej funkcji 4 razy bo tak jak wyżej wspomniałem można pobrać tylko 8 wyników jednym zamachem, a ja w przykładzie chciałem zrobić 32.

Możesz oczywiście napisać wielowątkowego szukacza i użyć multi cURL ( http://pl.php.net/manual/pl/function.curl-multi-exec.php ) lub próbować 'z partyzanta' z normalnym Google Search.

0

Swobodnie mozesz pobierac wszystkie wyniki googla jako strone, ktora parsujesz i wyciagasz to, co jest Ci potrzebne.

0

Monk dziękuję, właśnie o te API mi chodziło tylko nie pamiętałem jak to się w ogóle zwało...

chcę wysyłać tylko 1 zapytanie na sek ;)

dzięki wielkie za pomoc :)

Demonical Monk jakbyś mógł mi tylko to jeszcze wyjaśnić:
czy tą funkcją można wysłać jakieś keyword i dostać zwrotną informację na którym miejscu jest moja strona w zależności od wpisanego keyword?

przykład (piszę go, bo coś ostatnio mam problemy z wysłowieniem się):
strona: www.stronka.pl
słowa kluczowe: samolot, model, konwersja, modelarstwo

i dla tych 4 słów kluczowych chcę sprawdzić pozycję mojej stronki w google

0

To musisz z syntaxami pokombinować w zapytaniach, nie wiem czy w ogóle się da tak czy trzeba litanię robić.

0

litanię??

że też temu idiocie na studiach się chciało wymyślić takie coś na zaliczenie.. :-/ :-[

0

ogólnie to jestem zaskoczony

tym ajax api nie sięga głębiej niż do 64 wyników.. jakiś pomysł?

0

Jednym zapytaniem możesz pobrać max. 8 wyników, a razem do 64 w głębokości (dalej API nie szuka).

Widocznie się nie wczytałeś ^^
Spróbuj jakoś ładnie podszyć się pod jakąś Mozillę czy co i normalnie z searchu pobierz jeśli ci nie odpowiada. BTW. pamiętaj o sleepach bo założą Ci antiflood.

0

good ;D

o sleepie pamiętałem :)

dziękówka ;D

0

Widocznie się nie wczytałeś ^^

no jakoś nie mogę się dowiedzieć jak się podpiąć ;-(

1 użytkowników online, w tym zalogowanych: 0, gości: 1