montanara

montanara
Рейтинг
118
Регистрация
08.02.2006

Заказывал автору копирайт двух статей. Остался доволен соблюдением сроков и качеством работы. Рекомендую.

Dreamhoster.com:
На какой бюджет расчитываете?

у свеба самый дешевый вип - 1050 в месяц. эта цена бы устроила.

montanara добавил 13.07.2009 в 20:07

Snapius:
Здравствуйте!
Можете глянуть хостинг у меня в подписи.

у вас на хостинге нет подобных ограничений на загрузку процессора?

Заказывал еще один прогон -также все положительно. спасибо.

Заказывал прогон у ТС. Прогон сделан, общаться понравилось. Удачи.

wayly:
Киньте весь класс граббера с использованием прокси. Херня какая-то... По логике, не должно быть такого.

Здесь не класс, а простенький тестовый скрипт (выдает полный текст страницы, полученной от Google (чтобы было видно, какими словами послали) и выдергивает из нее PR).


<?php
define("GOOGLE_MAGIC", 0xE6359A60);

function zeroFill($a, $b){
$z = hexdec(80000000);
if ($z & $a){
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}else{
$a = ($a>>$b);
}
return $a;
}

function mix($a,$b,$c) {
$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a<<8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<<16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<<10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));
return array($a,$b,$c);
}

function GoogleCH($url, $length=null, $init=GOOGLE_MAGIC){
if(is_null($length)){
$length = sizeof($url);
}
$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;
while($len >= 12){
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}
$c += $length;
switch($len){
case 11: $c+=($url[$k+10]<<24);
case 10: $c+=($url[$k+9]<<16);
case 9 : $c+=($url[$k+8]<<8);
case 8 : $b+=($url[$k+7]<<24);
case 7 : $b+=($url[$k+6]<<16);
case 6 : $b+=($url[$k+5]<<8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<<24);
case 3 : $a+=($url[$k+2]<<16);
case 2 : $a+=($url[$k+1]<<8);
case 1 : $a+=($url[$k+0]);
}
$mix = mix($a,$b,$c);
return $mix[2];
}

function strord($string)
{
for ($i = 0; $i < strlen($string); $i++)
{
$result[$i] = ord($string{$i});
}
return $result;
}

function get_source($host,$path,$proxy=false,$user_agent="Opera/9.23 (Windows NT 5.1; U; ru)")
{
if (!$ch = @curl_init()) return false;
@curl_setopt($ch, CURLOPT_URL, 'http://'.$host.$path);
@curl_setopt($ch, CURLOPT_HEADER, true);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
//@curl_setopt($ch, CURLOPT_FAILONERROR, true);
if ($proxy) @curl_setopt($ch, CURLOPT_PROXY, $proxy);
if ($p = @curl_exec($ch)) echo $p."<br>";
else echo @curl_error($ch)."<br>";
@curl_close($ch);
return $p;
}

function get_google_pr($url, $proxy = false)
{
$host = 'www.google.com';
$url = 'info:http://' . $url;
$checksum = GoogleCH(strord($url));
$google_url = sprintf('/search?client=navclient-auto&ch=6%u&features=Rank&q=' . $url, $checksum);
$p = get_source($host,$google_url,$proxy);
if ($p) {
if (preg_match('#Rank_\d+\:\d+\:(\d+)#is', $p, $arr))
return intval($arr[1]);
else
return 0;
} else return false;
}

$url = "www.rbc.ru";
$proxy = "195.229.236.106:80";
echo "$url PR=".get_google_pr($url,$proxy);

?>
Vortelio:
http://www.samair.ru/proxy/

список проксей обновляется каждый день

С прокси из этого списка (которые high-anonymous proxy) все то же самое. С локали пропускает, а с сервера (забаненного) посылает. Причем некоторые прокси выдают каждый раз новый IP, и соответственно Google каждай раз посылает новый IP.

Посылает такими словами:

Your client does not have permission to get URL ... (Client IP address: 128.208.4.198)

Dash:
Я понял, что вас с любого IP посылают.

Нет, сначала посылают только с забаненных. Но через некоторое время работы скрипта любой IP превращается в забаненный, и с него тоже начинают посылать.

Dash:
Вы некорректный запрос посылаете ;)
Снифферите тулбар.

В чем именно некорректный? Как я понимаю, на некорректный запрос Google посылал бы всегда, а не только с забаненного IP.

wayly:
Использовать анонимные прокси. А то, что называете анонимным - легко проверить. Вешаем на хосте принт переменной $_SERVER и гетим через курл с использованием прокси страницу.

Потом смотрим - светится ли тот прокси, который вы указали на вход :)

По этим признакам прокси анонимный.

А у вас все это лежит на виртуальном хосте или на свойем сервере?

Сечас попробовал с разных хостеров запустить срипт (везде виртуальный хостинг) - всех отфуболили... Spaceweb, Masterhost, Peterhost, Agava.

Всего: 272