Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / LWP::UserAgent regexp и utf8 / 7 сообщений из 7, страница 1 из 1
23.07.2013, 13:43
    #38340453
fgh23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
На Perl скачиваю страницу через LWP::UserAgent, страница в utf8 и в регэкспе пытаюсь применить кириллицу - не проходит. Причём если код веб-страницы сохранить в самом perl документ - работает. Документ сохраняется тоже в utf8 и use utf8 стоит. Если полученный через LWP контент попробовать перекодировать через decode('utf8', $content) - выдаёт ошибку wide characters. Как решить данную проблему?

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
use utf8;

my $ua = LWP::UserAgent->new();
	$ua->proxy(['http', 'https'], $proxyHost);
	my $response = HTTP::Request->new('GET', $link);
	$response->proxy_authorization_basic($proxyLogin, $proxyPassword);
	$response = $ua->request($response);
	if($response->is_success) {
		my $content =  $response->decoded_content
                my ($num) = $content =~ /выбрано — (\d+)/;
		}
...
Рейтинг: 0 / 0
23.07.2013, 14:02
    #38340498
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
Код: sql
1.
my $content =  $response->decoded_content (charset => 'UTF-8');


Так попробуйте. А также поиграйте с заголовками.
...
Рейтинг: 0 / 0
23.07.2013, 15:35
    #38340734
fgh23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
mhx
Код: sql
1.
my $content =  $response->decoded_content (charset => 'UTF-8');


Так попробуйте. А также поиграйте с заголовками.
Ставил, играл. Ох уж этот perl
...
Рейтинг: 0 / 0
24.07.2013, 07:04
    #38341545
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
Тогда замените use utf8 на use encoding 'utf8', STDOUT => 'utf8'. И кириллица в регулярках работает, и 'Wide character' отсутствует
...
Рейтинг: 0 / 0
24.07.2013, 09:51
    #38341603
fgh23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
mhxТогда замените use utf8 на use encoding 'utf8', STDOUT => 'utf8'. И кириллица в регулярках работает, и 'Wide character' отсутствует
Нет, всёравно wide character
...
Рейтинг: 0 / 0
24.07.2013, 09:58
    #38341614
mhx
mhx
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
binmode STDOUT, ':utf8'; ?
...
Рейтинг: 0 / 0
24.07.2013, 12:46
    #38341947
fgh23
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LWP::UserAgent regexp и utf8
mhxbinmode STDOUT, ':utf8'; ?
Так тоже не работало, но суть не в этом.
Опытным путём определил, что кириллический символы находятся, а проблема в пробелах была, regexp сделал таким: "выбрано.?моделей.?\—.?(\d+)" и заработало. Я так понимаю на сайте вместо пробельных символ использовались какие-то особенные? Хотя я для регэкспа копировал из исходного html-кода фразу и вставлял в скрипт, но это не давало результата.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / LWP::UserAgent regexp и utf8 / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]