Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Re-Tracker | Система локальных ретрекеров | Ретрекер _ Помощь по ретрекеру (FAQ) _ Парсер статистики XBT

Автор: kup 5.10.2009, 12:22

Хотел тут попробовать отпарсить статистику у XBT (host:2710/statistics), но не получилось. При попытке получить страницу выдаются кракозябры. Смены кодировок не помогают. Хотел узнать, реально ли вообще спарсить эту страницу?
Вот пример кода, чтоб увидеть кракозябры

Код
<?php
$file = file_get_contents ('http://ВАШ_ХОСТ:2710/statistics');
echo ($file);
?>

Автор: FreeM@N 5.10.2009, 13:32

Выключите GZIP сжатие страниц добавив в настройки:

Код
gzip_debug = 0
gzip_scrape = 0


Парсер статистики на perl-е (сиды, пиры, торренты):
CODE
#!/usr/bin/perl

if (! eval "require LWP::UserAgent;")
{
$ret = "LWP::UserAgent not found";
}

if ( exists $ARGV[0]) {
if ($ret)
{
print "no ($ret)\n";
exit 1;
}

my $ua = LWP::UserAgent->new(timeout => 5);

my $response = $ua->request(HTTP::Request->new('GET',$ARGV[0]));
my $content = $response->content;

my $seeders = -1;
my $peers = -1;
my $torrents = -1;

if ($content =~ m/seeders<td[^>].*?>(\d+)<tr><td>peers<td[^>].*?>(\d+)<tr><td>torrents<td[^>].*?>(\d+)/i) {
$seeders = $1;
$peers = $2;
$torrents = $3;
}

print "seeders:$seeders peers:$peers torrents:$torrents";
print "\n";
}


Парсер личеров:
CODE
#!/usr/bin/perl

if (! eval "require LWP::UserAgent;")
{
$ret = "LWP::UserAgent not found";
}

if ( exists $ARGV[0]) {
if ($ret)
{
print "no ($ret)\n";
exit 1;
}

my $ua = LWP::UserAgent->new(timeout => 5);

my $response = $ua->request(HTTP::Request->new('GET',$ARGV[0]));
my $content = $response->content;

my $leechers = -1;

if ($content =~ m/leechers<td[^>].*?>(\d+)<tr>/i) {
$leechers = $1;
}

print "leechers:$leechers";
print "\n";
}


Это можно было объединить но мне для графиков нужна была именно раздельная стата...
Для PHP юзабельны будут регулярки.

Автор: kup 5.10.2009, 13:47

Было бы конечно хорошо обойтись без выключения, т.к. доступа в серверную часть нет sad.gif Но если по-другому никак, то попробуем сделать. Спасибо.

Автор: FreeM@N 5.10.2009, 15:43

Зачем выключать? XBTT периодически перечитывает файл конфигурации и применяет изменения без перезапуска.

Автор: kup 5.10.2009, 16:43

Не, я имею ввиду gzip smile.gif Сейчас админ машины в отпуске, а у меня к ней доступа нет...вот и хотелось бы сделать своими силами.

Автор: FreeM@N 5.10.2009, 17:20

ну разожмите ответ http://us2.php.net/manual/en/book.zlib.php тогда.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)