Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.1960
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 08.10.2008, 01:56   #1
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
По умолчанию предлагаю скрипт для проверки траста в гугле

Предлагая вашему вниманию не большой скрипт на перле, который позволит замерить trustrank для конкретного хостинга по алгоритму впервые опубликованным АлексомФ (http://alexf.name/2007-11-23/uluchshennyj-trastrank/), конечно с некоторыми усовершенствованиями.

В начале файла 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 минут что б гугл не забанил.

Зы.: кто уже имеет подобный скрипт не флудите в теме, это для тех кто не имеет.
durman вне форума  
Старый 08.10.2008, 01:56   #2
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
ТС -->
автор темы ТС По умолчанию

Код:
#!/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 ([email protected]) {
					print "error: [email protected]\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 ([email protected]) {
		print [email protected];
	}
	
	if (scalar(@arr_dom) > 1) {
		sleep 300;
	}
}

Последний раз редактировалось durman; 08.10.2008 в 12:23.
durman вне форума  
Старый 08.10.2008, 02:59   #3
W84me
Senior Member
 
Регистрация: 19.04.2008
Сообщений: 266
Бабло: $44320
По умолчанию

ето не трастранк
W84me вне форума  
Старый 08.10.2008, 03:13   #4
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от W84me Посмотреть сообщение
ето не трастранк
конструктивно
durman вне форума  
Старый 08.10.2008, 04:30   #5
Ocelot
Senior Member
 
Аватар для Ocelot
 
Регистрация: 23.09.2007
Адрес: Siberia
Сообщений: 369
Бабло: $42215
По умолчанию

C:\Users\admin\Documents>trust.pl
Unmatched ) in regex; marked by <-- HERE in m/class=l.*?) <-- HERE ">(.+?)</a></h3>/ at C:\Users\admin\Documents\trust.pl line 38.
Ocelot вне форума  
Старый 08.10.2008, 07:08   #6
mudoeb
Senior Member
 
Регистрация: 29.11.2007
Сообщений: 581
Бабло: $500
По умолчанию

по уникальным заголовкам, особенно если они содержат малопопулярные слова, твой сайт всегда будет в топе, так что о трастовости это не говрит ничего
mudoeb вне форума  
Старый 08.10.2008, 12:14   #7
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
ТС -->
автор темы ТС По умолчанию

если запускаете в винде, то во первых установите перл.
во вторых запускать надо например так
C:\Users\admin\Documents>perl trust.pl mail.ru

mudoeb, именно для этого есть вторая оцценка, которая показывает среднее кол-во найденых результатов. По ней ты решаешь на сколько доверять усреднённой Position.
durman вне форума  
Старый 08.10.2008, 12:20   #8
durman
Senior Member
 
Аватар для durman
 
Регистрация: 06.02.2008
Сообщений: 315
Бабло: $91645
ТС -->
автор темы ТС По умолчанию

Ocelot, сори сначало не заметил но при постинге некоторые бэкслэши потёрлись.
исправил
durman вне форума  
Старый 08.10.2008, 13:38   #9
W84me
Senior Member
 
Регистрация: 19.04.2008
Сообщений: 266
Бабло: $44320
По умолчанию

в принципе мудоеб все сказал.
W84me вне форума  
Старый 08.10.2008, 20:23   #10
Ocelot
Senior Member
 
Аватар для Ocelot
 
Регистрация: 23.09.2007
Адрес: Siberia
Сообщений: 369
Бабло: $42215
По умолчанию

C:\Users\admin\Documents>perl trust.pl mail.ru
Parsing of undecoded UTF-8 will give garbage when decoding entities at C:/Perl/lib/LWP/Protocol.pm line 115.
Ocelot вне форума  
Закрытая тема



Опции темы
Опции просмотра