предлагаю скрипт для проверки траста в гугле

Статус
В этой теме нельзя размещать новые ответы.

durman

Постоялец
Регистрация
18 Фев 2008
Сообщения
87
Реакции
16
Предлагая вашему вниманию не большой скрипт на перле, который позволит замерить trustrank для конкретного хостинга по алгоритму впервые опубликованным АлексомФ (Для просмотра ссылки Войди или Зарегистрируйся), конечно с некоторыми усовершенствованиями.

В начале файла 2 главные переменные:
my $query_count = 100; - кол-во titloв для данного хоста, по которым ищем позиции
my $query_deep = 100; - сколько результатов просматривать.

Если у вам жалко трафа ставьте оба параметра на 10, но самые точные результаты на 100.

Результат работы выглядит примерно так
domin: blogs.mail.ru
position: 10 – средняя позиция домена по произведённым запросам
of result count: 4717 – среднее кол-во страниц в индексе по произведённым запросам
based on iterations: 39/99 = 39% - было проведено 99 (обычно 100) запросов, в 39 обнаружился blogs.mail.ru. (параметры «position» и «position» усреднялись только по 39 значениям)

Судить о бонусности надо на основании этих трёх параметров и они никоим образом не могут быть сведены в одну цифру. Физический смысл параметров :
1) Position – позиция в серпе – чем меньше тем лучше
2) of result count – обратная оценка погрешности первого параметра, чем она больше тем точнее Position
3) based on iterations – обратная оценка второго параметра, чем она больше тем точнее (2) и соответственно (1)

Скрипт по возможности пытается удалить из заголовков название проверяемого домена.

Скрипту на вход (параметром) можно подавать имя хоста либо имя файла в котором перечислены хосты. Результаты выводятся на экран, так что можно перенаправлять в любой файл.
Скрипт не работает с соксами и не предназначен для промышленных масштабов. Если вы чекаете несколько хостов то между кадым задержка в 6 минут что б гугл не забанил.

Зы.: кто уже имеет подобный скрипт не флудите в теме, это для тех кто не имеет.

Добавлено через 37 секунд
Код:
#!/usr/bin/perl -w

use LWP::UserAgent;
use LWP::ConnCache;
use strict;
use Encode;
use HTML::Entities;

my $query_count = 100; # from 10 to 100
my $query_deep = 100; # from 10 to 100
 
$| = 1; 
my $file = $ARGV[0];
my @arr_dom;
if (open FH, $file){
	@arr_dom = <FH>;
	close FH;
} else {
	push @arr_dom,$file;
}
	
foreach (@arr_dom) {
	s/\s*$//s;
	s/^\s*(\.)?//s;
	my $domain = $_;
	next if ($domain eq '');
	
	my ($domain2) = $domain =~ /(\w+.\w+)$/si;
	my ($domain1) = $domain =~ /(\w+).\w+$/si;
	
	eval {
		my $b_fp = LWP::UserAgent->new(
			agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.15'
		);
		my $b_response = $b_fp->get("http://www.google.com/search?q=site:$domain&num=$query_count");
		
		
		my @keywords = $b_response->content =~ /class=l.*?\)">(.+?)<\/a><\/h3>/sg;
		
		my $suc_cnt = 0;
		my $pos = 0;
		my $res_cnt = 0;
		my $ves = 0;
		foreach my $kwd (@keywords) {
			
				sleep 1;
				$kwd =~ s/<b>...<\/b>//sg;
				$kwd =~ s/<\/b>//sg;
				$kwd =~ s/<b>//sg;
				$kwd =~ s/$domain2//sg;
				$kwd =~ s/$domain1//sg;
				decode_entities($kwd);
			
				my $response;
				eval {			
					my $fp = LWP::UserAgent->new(
						agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.15',
						conn_cache => LWP::ConnCache->new()
					);
					$response = $fp->get("http://www.google.com/search?hl=ru&num=$query_deep&q=$kwd");
				};
				if ($@) {
					print "error: $@\n";
				}
				
				my @links = $response->content =~ /href="http:\/\/(?:www\.)?(?:\w*?\.)?((?:\w+\.)*?\w+\.\w+)\/\S* class=l/sg;
				my ($cnt) = $response->content =~ /<b>1<\/b> - <b>\d+<\/b>.*?<b>(\d+.*?)<\/b>.*?\(<b/sg;
				if (!defined($cnt)){
					$ves++;
					next;
				}
				my @cnts = $cnt =~ /(\d+)/sg;
				$cnt = join ('',@cnts);
				
				my $is_top = 0;
				for (my $i=0; $i<scalar(@links); $i++) {
					if ($domain eq $links[$i]) {
						Encode::from_to($kwd, 'utf-8','windows-1251');
						$suc_cnt++;
						$pos += $i;
						$res_cnt += $cnt;
						
						$is_top = 1;
						last;
					}
				}
				
				if (!$is_top) {
					Encode::from_to($kwd, 'utf-8','windows-1251');
				}
			
		}
		
		print "\ndomin: $domain \n";
		if ($suc_cnt) {
			print "position: ".int($pos/$suc_cnt)."\n";
			print "of result count: ".int($res_cnt/$suc_cnt)."\n";
			print "based on iterations: ".($suc_cnt)."/".(scalar(@keywords)-$ves)." = ".int((100*$suc_cnt)/(scalar(@keywords)-$ves))."%\n";
		} else {
			print "no position found. domain is banned!!\n";
		}
	};
	
	if ($@) {
		print $@;
	}
	
	if (scalar(@arr_dom) > 1) {
		sleep 300;
	}
}
 
  • Нравится
Реакции: BFox
  • Заблокирован
  • #2
Задавала вопрос о методике числовой оценки траста гугля для своего скрипта (массовая оценка доменов по многим параметрам).
Не нашла ответа.
И эта не нравится.
Есть ли другие подходы?
 
получил ошибку 500.
надо скрипт поправить может?
 
да неактуально уже, к сожалению...
7 месяцев прошло. а жаль.
пробовал поправить - неосилил, т.к. в перле не силён.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху