Forum Webscript.Ru

Программирование => Perl => Тема начата: koder20005 от 04 Мая 2007, 22:33:23

Название: Как настроить LWP
Отправлено: koder20005 от 04 Мая 2007, 22:33:23
Как настроить LWP:UserAgent
так, чтобы на сайте остался след не скрипта посявшего сайт, а пользователя через браузер??
Название: Как настроить LWP
Отправлено: arto от 05 Мая 2007, 11:00:04
какой именно след? ip?
Название: Как настроить LWP
Отправлено: koder20005 от 05 Мая 2007, 11:54:27
Referer, и т.д.
Название: Как настроить LWP
Отправлено: arto от 05 Мая 2007, 13:34:07
что непонятно в perldoc LWP::UserAgent ?
Название: Как настроить LWP
Отправлено: koder20005 от 05 Мая 2007, 20:16:18
нет мне нужны значения, которые похожи на пользователей.
 Типо этого
Opera/9.20 (Windows NT 5.1; U; ru)
Название: Как настроить LWP
Отправлено: arto от 06 Мая 2007, 14:47:57
sort -u /var/log/httpd/agent_log
Название: Как настроить LWP
Отправлено: koder20005 от 08 Мая 2007, 20:53:38
Выводит содержимое всего файла, а не Refer.
Название: Как настроить LWP
Отправлено: arto от 08 Мая 2007, 21:01:10
1. referer а не refer
2. user-agent, "Opera/9.20 (Windows NT 5.1; U; ru)" в referer быть не может.
Название: Как настроить LWP
Отправлено: koder20005 от 08 Мая 2007, 21:08:42
А мне нужно, чтобы была инфорация только откуда пришли..
Название: Как настроить LWP
Отправлено: arto от 08 Мая 2007, 21:14:01
обясните подробнее, что надо
Название: Как настроить LWP
Отправлено: koder20005 от 08 Мая 2007, 21:21:49
213.141.137.138 - - [08/May/2007:01:46:11 +0400] "GET / HTTP/1.1" 200 2529 "http://www.rambler.ru/srch?words=%F6%E5%ED%F2%F0+%F1%E0%E4%EE%E2%EE%E4%F1%F2%E2%E0&old_q=%F1%E0%E4%EE%E2%EE%E4%ED%E8%F7%E8%F1%EA%E8%E9+%F6%E5%ED%F2%F0&btnG=%CD%E0%E9%F2%E8%21" "Opera/9.10 (Windows NT 5.1; U; ru)"

Это у меня находится в файле, мне надо извлекать
такие вот строки
http://www.rambler.ru/srch?words=%F6%E5%ED%F2%F0+%F1%E0%E4%EE%E2%EE%E4%F1%F2%E2%E0&old_q=%F1%E0%E4%EE%E2%EE%E4%ED%E8%F7%E8%F1%EA%E8%E9+%F6%E5%ED%F2%F0&btnG=%CD%E0%E9%F2%E8%21
Название: Как настроить LWP
Отправлено: arto от 08 Мая 2007, 22:13:24
\\S+\\s+\\S+\\s+\\S+\\s+.{28}\\s+"[^"]*"\\s+\\d+\\s+\\d+\\s+"([^"]+)"
Название: Как настроить LWP
Отправлено: koder20005 от 08 Мая 2007, 22:54:01
Я использую use Apache::LogRegex;
почему то это не прокатывает
eval { $lr = Apache::LogRegex->new("%h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"") };
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 08:34:10
print $lr->regex и сравните
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 11:47:14
Вот что выдало (?-xism:^(\\S*) (\\S*) (\\S*) (\\[[^\\]]+\\]) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*) (\\S*)$)

А как подогнать...
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 11:58:22
вам шашечки, или ...?

perldoc -m Apache::LogRegex
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 12:06:58
Блин посоветуй компонент, чтобы парсить access_log
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 12:40:38
регулярное выражение написал -- что еше надо?
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 12:45:51
btw, если посмотреть в исходник, то хватит q|...| в new
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 13:57:52
Все ок подошло..Спасибо..
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 14:02:29
Мне кажется здесь не правильно
\\S+\\s+\\S+\\s+\\S+\\s+.{28}\\s+"[^"]*"\\s+\\d+\\s+\\d+\\s+"([^"]+)"
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 14:09:18
# perl -de0
  DB<1> $a = q|213.141.137.138 - - [08/May/2007:01:46:11 +0400] "GET / HTTP/1.1" 200 2529 "http://www.rambler.ru/srch? words=%F6%E5%ED%F2%F0+%F1%E0%E4%EE%E2%EE%E4%F1%F2%E2%E0& old_q=%F1%E0%E4%EE%E2%EE%E4%ED%E8%F7%E8%F1%EA%E8%E9+%F6%E5%ED%F2%F0&btnG=%CD%E0%E9%F2%E8%21" "Opera/9.10 (Windows NT 5.1; U; ru)|

  DB<2> p $a
213.141.137.138 - - [08/May/2007:01:46:11 +0400] "GET / HTTP/1.1" 200 2529 "http://www.rambler.ru/srch? words=%F6%E5%ED%F2%F0+%F1%E0%E4%EE%E2%EE%E4%F1%F2%E2%E0& old_q=%F1%E0%E4%EE%E2%EE%E4%ED%E8%F7%E8%F1%EA%E8%E9+%F6%E5%ED%F2%F0&btnG=%CD%E0%E9%F2%E8%21" "Opera/9.10 (Windows NT 5.1; U; ru)
  DB<3> p $a =~ m#\\S+\\s+\\S+\\s+\\S+\\s+.{28}\\s+"[^"]*"\\s+\\d+\\s+\\d+\\s+"([^"]+)"#
http://www.rambler.ru/srch? words=%F6%E5%ED%F2%F0+%F1%E0%E4%EE%E2%EE%E4%F1%F2%E2%E0& old_q=%F1%E0%E4%EE%E2%EE%E4%ED%E8%F7%E8%F1%EA%E8%E9+%F6%E5%ED%F2%F0&btnG=%CD%E0%E9%F2%E8%21
  DB<4>
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 14:09:44
может вместо этого .*?
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 14:26:55
не расскажите, что это означает в данном контексте?
и почему мое выражение вас не устраивает?
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 14:32:15
.{28} Пропустить 28 символов, но там может быть больше, а .*?
это все остально до конца строки т.е. useragent.
Вот что получилось, нормально
Цитировать
open(F1,"D:/access_log") or die $!;
while ($line = ) {
      if ($line =~m/\\S+ \\S+ \\S+ .*? "[^"]*" \\d+ \\d+ "([^"]+)"/) {
        $ref = $1;
      }
}
close(F1) or die $!;
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 15:01:02
больше, чем в "[08/May/2007:01:46:11 +0400]" ?

это где такое случается?
Название: Как настроить LWP
Отправлено: koder20005 от 09 Мая 2007, 19:59:06
"[08/September/2007:01:46:11 +0400]"
Название: Как настроить LWP
Отправлено: arto от 09 Мая 2007, 23:11:26
это где такое случилось?
Название: Как настроить LWP
Отправлено: koder20005 от 11 Мая 2007, 11:49:31
А разве не случится в будущем?
Название: Как настроить LWP
Отправлено: arto от 11 Мая 2007, 12:13:39
с какой вероятностью?
Название: Как настроить LWP
Отправлено: koder20005 от 11 Мая 2007, 15:25:16
с вероятностью через 4 месяца.
Название: Как настроить LWP
Отправлено: arto от 11 Мая 2007, 16:10:06
ну если кто настраивает в %t свой формат -- он сам себе злобный буратино.
Название: Как настроить LWP
Отправлено: koder20005 от 11 Мая 2007, 18:11:03
Этоже почему?