ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

30.04.2009, 14:18
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме: 2075230
Репутация:
462
|
|
Логинюсь в vbulletin:
Код:
$url="форум";
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$cookie_jarr = HTTP::Cookies->new();
$client->cookie_jar( $cookie_jarr );
$answer = $client->post($url,
Content => [
"vb_login_username" => "логин",
"vb_login_password" => "пасс",
"do" => "login",
],);
Логин удачный идём дальше на страницу того что нужно сграбить:
Код:
$url="форум&page=1";
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$client->cookie_jar( $cookie_jarr );
$answer = $client->get($url);
$answer->content =~ /рерулярка/g;
потом иду на следующюю страницу, также, только естественно уже $url="форум&page=2"
но, по регулярке не грабиться ничего, даже контент страницы не показывает. помогите разобраться
т.е. дальше первой страницы ничего неграбится. sleep непомогает
если беру страницы из .тхт то всегда ошибка:
Код:
Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm
line 44, <PAGE> line 315.
Последний раз редактировалось ph1l1ster; 30.04.2009 в 14:26..
|
|
|

30.04.2009, 14:39
|
|
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме: 292722
Репутация:
71
|
|
пробовал просто выводить содержимое страниц? Навигация вообще происходит или он дальше 1-й страницы не идет?
Может имеет смысл еще раз логинется перед получением новой страницы?
|
|
|

01.05.2009, 18:27
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме: 2075230
Репутация:
462
|
|
demond, с этим разобрался, невнимательность)
далее:
опять с куками, беру url из списка и перехожу по ней, выдазит ошибка:
Код:
Can't call method "scheme" on an undefined value at C:/Perl/lib/HTTP/Cookies.pm line 44, <URLS> line 71.
Код:
sub next{
open(A, ">>a.txt");
open(URLS, "urls.txt");
@urlo = <URLS>;
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$client->cookie_jar( $cookie_jarr );
$answer = $client->get($urlo);
foreach $urlo (@urlo)
{@qwerty = $answer->content =~ /(.*)/g;}
print A join "\n", @qwerty;}
а если поодной url типа $answer = $client->get($urlo[1]);
то всё норм! где ошибка?? 
|
|
|

02.05.2009, 11:30
|
|
Познающий
Регистрация: 14.01.2009
Сообщений: 93
Провел на форуме: 244235
Репутация:
39
|
|
Сообщение от ph1l1ster
Код:
sub next{
open(A, ">>a.txt");
open(URLS, "urls.txt");
@urlo = <URLS>;
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$client->cookie_jar( $cookie_jarr );
$answer = $client->get($urlo);
foreach $urlo (@urlo)
{@qwerty = $answer->content =~ /(.*)/g;}
print A join "\n", @qwerty;}
$answer = $client->get($urlo); - а где вообще задана переменная $urlo ? и цикл зачем? просто вывести контент н раз?
упд: попробуй strict + warnings
упд2:
Код:
foreach $urlo (@urlo)
{ $answer = $client->get($urlo);
@qwerty = $answer->content =~ /(.*)/g;
print A join "\n", @qwerty;
}
}
Последний раз редактировалось roddik; 02.05.2009 в 11:37..
|
|
|

02.05.2009, 11:32
|
|
Banned
Регистрация: 29.04.2009
Сообщений: 5
Провел на форуме: 29069
Репутация:
11
|
|
лолло
|
|
|

04.05.2009, 10:46
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
sub next {
open(A, ">>a.txt");
open(URLS, "urls.txt");
@urlo = <URLS>;
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$client->cookie_jar( $cookie_jarr );
$answer = $client->get($urlo);
foreach $urlo (@urlo) {
@qwerty = $answer->content =~ /(.*)/g;
}
print A join "\n", @qwerty;
}
Мде, ну и код
Код:
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
sub next {
open(A, ">>a.txt");
# Принято использовать вид open my $A, '>>', 'a.txt' or die "open() error: $!\n";
open(URLS, "urls.txt");
# open my $URLS, '<', 'urls.txt' or die "Shit, an error: $!\n!";
@urlo = <URLS>;
$client = LWP::UserAgent->new( ) or die;
$client->agent('Opera/9.0 (Windows NT 5.1; U; en; (R1 1.5))');
$client->cookie_jar( $cookie_jarr );
$answer = $client->get($urlo);
# А не будет ли тут Undefined переменной? $urlo не есть @urlo, также не есть его элемент
foreach $urlo (@urlo) {
@qwerty = $answer->content =~ /(.*)/g;
}
# тут вообще я упал и не могу встать, массив @qwerty при каждом проходе цикла переписывается. Зачем? Что вообще хотелось получить этой регуляркой?
print A join "\n", @qwerty;
# А файлы принято закрывать. close $URLS; close $A;
}
упд: попробуй strict + warnings
Это вообще должно быть в любом скрипте.
|
|
|

05.05.2009, 17:59
|
|
Участник форума
Регистрация: 23.01.2008
Сообщений: 182
Провел на форуме: 2268999
Репутация:
410
|
|
По ходу чтения книги, наткнулся на такую вешь. При запуске программы вылетает ошибка. Вот сам код:
Код:
!#usr/bin/perl -w
$im_thinking_of=int(rand10);
print "Введите число от 0 до 9:";
$guess=<STDIN>;
chomp $guess;
if ($guess > $im_thinking_of) {
print "Перебор!\n";
} elsif ($guess < $im_thinking_of) {
print "Недобор!\n";
} else {
print "Вы угадали!\n";
}
Текст ошибки:
Код:
Can't modify not in scalar assignment at C:\programs\game.pl line 3, near ");"
|
|
|

05.05.2009, 18:20
|
|
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Восклицательный знак не туда поставил в первой строке
|
|
|

06.05.2009, 11:10
|
|
Участник форума
Регистрация: 23.01.2008
Сообщений: 182
Провел на форуме: 2268999
Репутация:
410
|
|
Еще такой вопрос. Когда запускаю скрипт на выполнение через командную строку, русский язык коряво отображается, как сделать, чтобы нормально отображался.
|
|
|

06.05.2009, 11:36
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Сменить кодировку всего скрипта
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|