Почему веб-страница, которую я получаю с помощью Perl, выглядит странно? - PullRequest
0 голосов
/ 25 апреля 2010

У меня есть Perl-скрипт для открытия страницы http://svejo.net/popular/all/new/ и фильтрации имен постов, но кроме заголовков все кажется зашифрованным. Ничто не может быть прочитано.

Когда я открываю ту же страницу в браузере, все выглядит нормально, включая исходный код. Как можно зашифровать страницу для скрипта, а не для браузера? Мой Perl-скрипт отправляет те же заголовки, что и мой браузер (Google Chrome).

Ответы [ 2 ]

4 голосов
/ 26 апреля 2010

Страница выглядит хорошо для меня, хотя я не читаю по-болгарски.

#!perl

use LWP::Simple;

getprint( 'http://svejo.net/popular/all/new/' );

Этот скрипт возвращает простую страницу без всего, что выглядит странным или зашифрованным:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg" lang="bg">
  <head>

<title>Svejo — Популярните новини </title>

Что вы пытались и какие версии Perl и модули вы используете? Какой вывод вы видите?

Вы уточняете, что используете Windows в ActivePerl (пожалуйста, обновите ваш вопрос с дополнительной информацией). Помните, что вы не только должны делать правильные вещи в Unicode в своих программах, но и ваш терминал должен быть настроен для правильного отображения Unicode.


Что происходит, когда вы явно binmode выводите?

 binmode STDOUT, ':utf8';

Попробуйте сохранить вывод в файл и посмотреть его в редакторе, который понимает UTF-8.


Хорошо, это не сработало. Давайте сделаем еще более общий вывод и настроим все дескрипторы на использование UTF-8 по умолчанию:

  use open IO  => ':utf8';
2 голосов
/ 25 апреля 2010

Страница кодируется UTF-8. Возможно, ваш Perl-скрипт использует другую кодировку?

Я нашел эту страницу, которая описывает Обработка файлов UTF-8 с помощью Perl .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...