HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1071  
Старый 30.04.2009, 14:18
ph1l1ster
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме:
2075230

Репутация: 462
Отправить сообщение для ph1l1ster с помощью ICQ
По умолчанию

Логинюсь в 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..
 
Ответить с цитированием

  #1072  
Старый 30.04.2009, 14:39
demond
Участник форума
Регистрация: 05.11.2008
Сообщений: 105
Провел на форуме:
292722

Репутация: 71
По умолчанию

пробовал просто выводить содержимое страниц? Навигация вообще происходит или он дальше 1-й страницы не идет?
Может имеет смысл еще раз логинется перед получением новой страницы?
 
Ответить с цитированием

  #1073  
Старый 01.05.2009, 18:27
ph1l1ster
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
Провел на форуме:
2075230

Репутация: 462
Отправить сообщение для ph1l1ster с помощью ICQ
По умолчанию

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]);

то всё норм! где ошибка??
 
Ответить с цитированием

  #1074  
Старый 02.05.2009, 11:30
roddik
Познающий
Регистрация: 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..
 
Ответить с цитированием

  #1075  
Старый 02.05.2009, 11:32
.:[Dumi]:.
Banned
Регистрация: 29.04.2009
Сообщений: 5
Провел на форуме:
29069

Репутация: 11
Отправить сообщение для .:[Dumi]:. с помощью ICQ
По умолчанию

лолло
 
Ответить с цитированием

  #1076  
Старый 04.05.2009, 10:46
krypt3r
Познавший АНТИЧАТ
Регистрация: 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
Это вообще должно быть в любом скрипте.
 
Ответить с цитированием

  #1077  
Старый 05.05.2009, 17:59
Amoura
Участник форума
Регистрация: 23.01.2008
Сообщений: 182
Провел на форуме:
2268999

Репутация: 410
Отправить сообщение для Amoura с помощью ICQ
По умолчанию

По ходу чтения книги, наткнулся на такую вешь. При запуске программы вылетает ошибка. Вот сам код:

Код:
!#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 ");"
 
Ответить с цитированием

  #1078  
Старый 05.05.2009, 18:20
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Восклицательный знак не туда поставил в первой строке
 
Ответить с цитированием

  #1079  
Старый 06.05.2009, 11:10
Amoura
Участник форума
Регистрация: 23.01.2008
Сообщений: 182
Провел на форуме:
2268999

Репутация: 410
Отправить сообщение для Amoura с помощью ICQ
По умолчанию

Еще такой вопрос. Когда запускаю скрипт на выполнение через командную строку, русский язык коряво отображается, как сделать, чтобы нормально отображался.
 
Ответить с цитированием

  #1080  
Старый 06.05.2009, 11:36
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Сменить кодировку всего скрипта
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
[php] Новичкам: задаем вопросы _Great_ PHP 16396 17.06.2010 21:19
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ