PHP: Sprawdzanie PageRank
W poprzednich wpisach wspominałem, że na blogu pojawiać się będą wpisy dotyczące skryptów i rozwiązać tworzonych w PHP. Jednak ze względu na brak czasu (sesja, obrona licencjatu) nie było to możliwe. Dzisiaj, gdy mam to już wszystko z głowy mogę coś w tym kierunku zrobić.
W poprzednich wpisach wspominałem, że na blogu pojawiać się będą wpisy dotyczące skryptów i rozwiązać tworzonych w PHP. Jednak ze względu na brak czasu (sesja, obrona licencjatu) nie było to możliwe. Dzisiaj, gdy mam to już wszystko z głowy mogę coś w tym kierunku zrobić.
Na pierwszy ogień idzie skrypt do pobierania wartości PageRank.
Muszę zaznaczyć, że nie jestem jego 100% autorem, gdyż w sieci znalazłem gotowe rozwiązanie (kilka funkcji). Moja rola ograniczyła się raczej do przepisania tego na wersję obiektową, tak aby było to łatwe i przyjemne w użytkowaniu.
Inicjalizacja
W celu sprawdzenia "zielonego paska" musi stworzyć nowy obiekt klasy googlePageRank. Jeszcze na chwilę zatrzymajmy się przy konstruktorze klasy. Posiada on dwa parametry z czego drugi jest opcjonalny. Pierwszy parametr to adresy strony internetowej, której będziemy sprawdzać PageRank. Drugi parametr może być tablicą zawierającą listę z adresami IP DataCenter na których będziemy sprawdzać PR. Jeżeli nie zostanie on podany, to domyślnie PageRank będzie sprawdzany na google.com.
$objPR = new googlePageRank('http://mojastrona.pl');
//tablica z IP DC
$arrDC[0] = '64.233.161.104';
$arrDC[1] = '66.102.11.107';
$objPRdc = new googlePageRank('http://mojastrona.pl', $arrDC);
Klasa posiada pole typu tablicowego, w którym są przechowywane dane. Tablica składa się z dwóch pól. Pierwsze pole to informacja z adrese DC, drugie pole to najbardziej interesująca nas informacja (chyba nie trzeba pisać jaka?) ;).
Odczytywanie danych
Jako, że dane są przechowywane w tablicy to najlepszym sposobem do "przemielenia" tych informacji jest pętla (np. for).
for( $i=0, $ile=count($arrPRdc); $i<$ile; $i++ )
echo 'PR na '.$arrPRdc->arrResults[$i]['dc'].' wynosi: '.$arrPRdc->arrResults[$i]['pagerank'].'
';
Lub za pomocą funkcji print_r.
echo '
';
';
print_r( $arrPRdc->arrResults );
echo '
Limity
Jedynym limitem jest zabezpieczenie Google. Jednorazowo, dziennie można odpytać 1000 razy bazę Google.
Mam nadzieję, że skrypt się przyda ;). Teraz nie będziesz musiał korzystać z darmowych rozwiązań. Ĺšródło klasy PageRank można pobrać w wersji ZIP lub TXT. W jednym jak i w drugim pliku znajduje się przykład. Skrypt działa na PHP w wersji 4.0 lub wyższej.
Komentarze 31
for( $i=0, $ile=count($arrPRdc); $i
Ojoj, ucięło mi kod. Chyba musisz poprawić escape'owanie ;).
Spróbuję jeszcze raz:
for( $i=0, $ile=count($arrPRdc); $i
No i niestety, znów ucięło ;/.
Chyba znalazłeś buga :P
A o co chodzi z tą pętlą? Coś nie tak?
No buga to na pewno znalazłem ;).
Nie, wszystko w porządku, tylko można to było szybciej i lepiej napisać:
$i
A gdzie jest coś napisane o limitach dotyczących przepytywania google?
Ja się spotkałem z jednodniowym banem na wyszukiwarkę jak robiłem skrypt do sprawdzania pozycji strony.
@mr_Zola: na dole wpisu: "Limity"
@shpyo: nie zrozumieliśmy się - skąd się wzięła liczba 1000, czy jest to gdzieś oficjalnie napisane?
Swoją drogą, nieźle zamotali (sposób wyliczania zmiennej ch) w google aby odczytać taki pagerank. (ciekawe po co?)
@shpyo: nie zrozumieliśmy się - skąd się wzięła liczba 1000, czy jest to gdzieś oficjalnie napisane?
Swoją drogą, nieźle zamotali (sposób wyliczania zmiennej ch) w google aby odczytać taki pagerank. (ciekawe po co?)
wszystko pieknie gdyby to działało ;) u mnie zawsze, nieważne czy local czy serwer w shou.pl zawsze mam, blokadę połączenia. jeszcze żaden tego typu skrypt mi nie działał. jest na to jakaś metoda?
@sagittariuspl: widocznie muszą być jakieś blokady bezpieczeństwa np. brak możliwości otwierania zdalnych plików. Spróbuj może wrzucić to jakiś inny serwer, bo jeżeli to wina ustawień php to raczej nic nie zrobisz (chyba że admin serwera coś zmieni).
tylko, że inny serwer nie wchodzi w grę. skrypt taki powoduje, że nie będę mógł go wszędzie uruchomić. moje localne IP jest blokowane przez google (sam nie wiem czemu). naszczeście pr odchodzi do lamusa
Mi pojawia się taki błąd:
Warning: file(http://www.google.com/search?client=navclient-auto&ch=6-2147446480&features=Rank&q=info:http://scretch.info) [function.file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /home.5/s/c/r/scretch/www/check_pr.php on line 39
Array
(
[0] => Array
(
[dc] => www.google.com
[pagerank] =>
)
)
czesc jestem lukas
a to dziwne , że inny serwer nie wchodzi w grę
Miałem już wiele podobnych skryptów i okazało się, że ani jeden nie działał na moim serwerze. Ten w sumie też nie dział :(
Mi też na różnych serwach nie chce działać.
Zerknijcie w linka w moim nicku. Zainstalowałem ( kupiłem ) skrypt Page Rank. Nie żałuję tych kilkudziesieciu dolców.
Webspider - spamer z Ciebie i tyle.
http://www.linkvendor.com/ tu masz wszystkie narzędzia jakie można sobie wymarzyć i to za darmo...
Jaki spamer. Na tego bloga trafiłem jak zawsze gdy szukam czegoś potrzebnego przez google. I jak napisałem coś w temacie akurat PR to zaraz spamer ? Ech te dzieci neostrady. Za darmo to nic w sieci nie dostaniesz no chyba, że free domenę hehe
Tego szukałem, dzięki.
Wielkie dzięki;) aż niewierzyłem że dzięki googlom tu kiedyś wejde;)
Fajne skrypt, big up!
Dla niekumatych, zeby wyciagnac sama cyfre PR(z google.com):
$objPR = new googlePageRank('http://jakasstrona.pl ');
echo $objPR->arrResults[0]['pagerank'];
O przyda mi się ten skrypcik do mojego katalogu firm...
"drugie pole to najbardziej interesująca nas informacja (chyba nie trzeba pisać jaka?) ;). " - a jakie są inne możliwości? :)
btw. http://code.google.com/p/popstats/
dzieki za artykuł
Dzięki, przyda się na pewno po małych przeróbkach :)
Pr googli to w 2012 roku wielka przewała. Nie ma już znaczenia na jakość i pozycjonowanie stron
Czy przewała? To czemu strony o wyższym page rank lepiej się w serpach zachowują? Page Rank to jedna z 200 wpływających na pozycje strony, lepiej mieć go niż narzekać na dalekie pozycje strony.
Moje zdanie to nie przewała.Wszystko się zmienia i algorytm też nabiera nowych innych znaczeń.
Coś link do zipa i txt nie działa :)