Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobiranie PR z Google
Forum PHP.pl > Forum > PHP
Vengeance
Cześć, nie bijcie za dosc standardowy temat - pewnie bylo miliony razy na forach... ale...

w wiekszosci podawany byl sposob poprzez cos w rodzaju:
http://google.com/search?ch=61381598655&am...w.strefaphp.net


Teraz nie działa... google popsuło winksmiley.jpg Jak teraz wyciągnąć PR? jest mi to cholernie potrzebne :/
NetJaro
... Michale smile.gif

Dałeś link do Google w poście, a więc mogłes go użyć ;-)
siemakuba
Jarku...(?)
Mógłbyś sprawdzać co takie podajesz :)
pierwszy wyni z w twojego Google-zapytania:
www.web-marketing.pl/pagerank.php

i wyni skorzystania z formularza sprawdzającego na tej stronie:

Kod
Warning: file(http://www.google.com/search?client=navclient-auto&ch=6725377045&features=Rank&q=info:http://www.wp.pl):
failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /pagerank.php on line 195
/ 10.


To zdaje się potwierdza tylko to, co napisał @Vengeance już na początku - wykorzystywany do tej pory sposób nie działa.

pozdr.
NetJaro
Tak, ale nie tylko pierwszy rekord się liczy ;-)

To jest szósty rekord ;-)

Cytat
Jarku...(?)

Można i tak ;-)

A tutaj kolejny rekord - działa, bo sprawdzałem ;-)
Vengeance
"To jest szósty rekord ;-)"

to jest dokłanie ten sam sposob... zobacz dalej w kod, ten sam link ;]

"A tutaj kolejny rekord - działa, bo sprawdzałem ;-)"

Ale ja szukam rozwiązania bez "pośredników", tylko bezpośrednio od wujka Google. Skoro ludzią działa np. to co podałeś, to pytanie co wykorzystują.
Tym bardziej ze masa pośredników stosuje captcha.

Dla potomnych.

  1. <?php
  2.  /*
  3. Written and contributed by
  4. Alex Stapleton,
  5. Andy Doctorow,
  6. Tarakan,
  7. Bill Zeller,
  8. Vijay "Cyberax" Bhatter
  9. traB
  10. This code is released into the public domain
  11. */
  12.  
  13. define('GOOGLE_MAGIC', 0x00000000E6359A60); // CHANGED (64Bit)
  14.  
  15. //unsigned shift right
  16. function zeroFill($a, $b)
  17. {
  18. $z = 0x0000000080000000; // CHANGED (64Bit)
  19. $a = $a & 0x00000000FFFFFFFF; // ADDED (64Bit)
  20.  
  21. if ($z & $a)
  22. {
  23. $a = ($a>>1);
  24. $a &= (~$z);
  25. $a |= 0x0000000040000000; // CHANGED (64Bit)
  26. $a = ($a>>($b-1));
  27. }
  28. else
  29. {  $a = ($a>>$b);
  30. }
  31. return $a;
  32. }
  33.  
  34.  
  35. function mix($a,$b,$c) {
  36.  
  37. $a = $a & 0x00000000FFFFFFFF; // ADDED (64Bit)
  38. $b = $b & 0x00000000FFFFFFFF; // ADDED (64Bit)
  39. $c = $c & 0x00000000FFFFFFFF; // ADDED (64Bit)
  40.  
  41. $a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
  42. $b -= $c; $b -= $a; $b ^= ($a<<8);
  43. $c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
  44. $a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
  45. $b -= $c; $b -= $a; $b ^= ($a<<16);
  46. $c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
  47. $a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
  48. $b -= $c; $b -= $a; $b ^= ($a<<10);
  49. $c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
  50.  
  51. return array($a,$b,$c);
  52. }
  53.  
  54.  
  55. function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC) {
  56. if(is_null($length)) {
  57. $length = sizeof($url);
  58. }
  59. $a = $b = 0x000000009E3779B9; // CHANGED (64Bit)
  60.  
  61. $c = $init ;
  62. $k = 0;
  63. $len = $length;
  64. while($len >= 12) {
  65. $a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
  66. $b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
  67. $c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
  68. $mix = mix($a,$b,$c);
  69. $a = $mix[0]; $b = $mix[1]; $c = $mix[2];
  70. $k += 12;
  71. $len -= 12;
  72. }
  73.  
  74. $c += $length;
  75. switch($len) /* all the case statements fall through */
  76. {
  77. case 11: $c+=($url[$k+10]<<24);
  78. case 10: $c+=($url[$k+9]<<16);
  79. case 9 : $c+=($url[$k+8]<<8);
  80. /* the first byte of c is reserved for the length */
  81. case 8 : $b+=($url[$k+7]<<24);
  82. case 7 : $b+=($url[$k+6]<<16);
  83. case 6 : $b+=($url[$k+5]<<8);
  84. case 5 : $b+=($url[$k+4]);
  85. case 4 : $a+=($url[$k+3]<<24);
  86. case 3 : $a+=($url[$k+2]<<16);
  87. case 2 : $a+=($url[$k+1]<<8);
  88. case 1 : $a+=($url[$k+0]);
  89.  /* case 0: nothing left to add */
  90. }
  91. $mix = mix($a,$b,$c);
  92. /*-------------------------------------------- report the result */
  93. return $mix[2];
  94. }
  95.  
  96. //converts a string into an array of integers containing the numeric value of the 
    char
  97. function strord($string) {
  98. for($i=0;$i<strlen($string);$i++) {
  99. $result[$i] = ord($string{$i});
  100. }
  101. return $result;
  102. }
  103.  
  104. // converts an array of 32 bit integers into an array with 8 bit values. Equivalen
    t to (BYTE *)arr32
  105. function c32to8bit($arr32) {
  106. for($i=0;$i<count($arr32);$i++) {
  107. for ($bitOrder=$i*4;$bitOrder<=$i*4+3;$bitOrder++) {
  108. $arr8[$bitOrder]=$arr32[$i]&255;
  109. $arr32[$i]=zeroFill($arr32[$i], 8);
  110. }
  111. }
  112. return $arr8;
  113. }
  114.  
  115.  
  116. function GoogleCHNew($ch){
  117. $ch=sprintf("%u", $ch);
  118. $ch = ((($ch/7) << 2) | (((int)fmod($ch,13))&7));
  119. $prbuf = array();
  120. $prbuf[0] = $ch;
  121. for($i = 1; $i < 20; $i++) {
  122. $prbuf[$i] = $prbuf[$i-1]-9;
  123. }
  124. $ch = GoogleCH(c32to8bit($prbuf), 80);
  125. return sprintf("%u", $ch);
  126. }
  127.  
  128.  
  129. function get_page_rank($url){
  130. $url = preg_replace('/?.*$/','?',$url);
  131. $reqgr = "info:".$url;
  132. $reqgre = "info:".urlencode($url);
  133. $gch = GoogleCH(strord($reqgr));
  134.  
  135. $gch = "6".GoogleCHNew($gch);
  136.  
  137. // echo $gch;
  138.  
  139. $patern = '/^http:/';
  140. $patern2 = '/^http://.*google..*/(search|images|groups|news).*/';
  141. $patern3 = '/^http://localhost.*/';
  142. $patern4 = '/^http://(127.|10.|172.16|192.168).*/'; //local ip
  143. if(!preg_match($patern, $url) || preg_match($patern2, $url) ||
  144.  preg_match($patern3, $url) || preg_match($patern4, $url)){
  145.  return -1;
  146. }else{
  147. // BEGIN CHANGES (fsockopen to request PR)
  148.  
  149. $fsock = fsockopen('toolbarqueries.google.com', 80, $errno, $errstr);
  150. if ( !$fsock ){
  151. return -1;
  152. }
  153. $base_get = "/search?client=navclient-auto&ch=".$gch."&ie=UTF-8&oe=UTF-8&features=Rank:FVN&q=".$reqgre;
  154. // echo $base_get;
  155. fputs($fsock, "GET $base_get HTTP/1.1rn");
  156. fputs($fsock, "HOST: toolbarqueries.google.comrn");
  157. fputs($fsock, "User-Agent: Mozilla/4.0 (compatible; GoogleToolbar 2.0.114-big; Windows XP 5.1)rn");
  158. fputs($fsock, "Connection: closernrn");
  159. while(!feof($fsock)){
  160. $res['content'] .= fread($fsock, 1024);
  161. }
  162. fclose($fsock);
  163.  
  164. // END CHANGES (fsockopen to request PR)
  165.  
  166. if(preg_match('/Rank_.*?:.*?:(d+)/i', $res['content'], $m)){
  167. return $m[1];
  168. }else{
  169. return -1;
  170. }
  171. }
  172. }
  173. ?>
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.