Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> качаем страницу 
:(
    Опции темы
Axe79
Дата 30.7.2009, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 20.7.2009

Репутация: нет
Всего: нет



тут походу ошибка в другом

после скачки всё нормально:


<option value="100" >НЕРУХОМIСТЬ-Житло в новобудовах</option><option value="102" >НЕРУХОМIСТЬ-Однокімнатні квартири</option><option value="104" >НЕРУХОМIСТЬ-Двокімнатні квартири</option><option value="106" >НЕРУХОМIСТЬ-Трикімнатні квартири</option><option value="108" >НЕРУХОМIСТЬ-Чотирикімнатні квартири</option><option value="110" >НЕРУХОМIСТЬ-Багатокімнатні квартири</option><option value="112" >НЕРУХОМIСТЬ-Кімнати в місті та передмісті</option><option value="114" >НЕРУХОМIСТЬ-Квартири та кімнати в області</option>

А вот после обработки HTML::FormatText имеем:

НЕ� УХОМIСТЬЖитло в новобудовахНезавершенеЗдане після 2002 р.Однокімнатні квартириГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нДвокімнатні квартириГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвськийр-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нКімнати в місті та передмістіГалицький р-нФранкiвський р-нЛичакiвський р-нШевченкiвський р-нЗалiзничний р-нСихiвський р-нКвартири та кімнати в областіПропозиціяКвартири та кімнати за межами областіПропозиціяКвартири
та кімнати. ПопитПопит в містіПопит за межами містаОбмін житлаЗ'їзд� оз'їзд� івноціннийЗ більшої

вот код:
Код

#!/usr/bin/perl 
use HTML::FormatText;

 require HTML::TreeBuilder;
 $tree = HTML::TreeBuilder->new->parse_file("/home/axe/Desktop/syrOr.txt") || die "$!";

 require HTML::FormatText;
 $formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 500);
 $tmps=$formatter->format($tree);

@data=split("\n", $tmps);
open(F, ">/home/axe/Desktop/magOr.txt") || die "$!";
print  F $tmps;
close(F);



Добавлено @ 16:13
к стати если можно б было сразу закинуть данные в

Код

 require HTML::FormatText;
 $formatter = HTML::FormatText->new(leftmargin => 0, rightmargin => 500);
 $tmps=$formatter->format($tree);


А то тут просит через файл 
Код

 require HTML::TreeBuilder;
 $tree = HTML::TreeBuilder->new->parse_file("/home/axe/Desktop/syrOr.txt") || die "$!";


по уму  красивее было б в одном скрипте скачать и отчистить от гипертекстовой разметки
без промежуточного баловства с файлами и дескрипторами

Добавлено @ 16:15
а то выходит как то не эстетично...
в одном качаем в другом чистим

Добавлено @ 16:17
для полноты ситуации сейчас скрипт для скачки выглядит так:
Код

#!/usr/bin/perl
use Encode qw(encode decode);
use LWP::UserAgent;
use POSIX;

print "Insert data code\npres 'a' for automatic insert\n";
chomp($dat=<STDIN>);
if ($dat eq 'a' or $dat eq 'A'){$dat=(strftime "%d%m", localtime);}

open(BAS, "/home/axe/Desktop/wmag/orenda/magOrBAS") || die "$!";
@path=<BAS>;
close(BAS);

open(DATA, ">/home/axe/Desktop/wmag/orenda/syrOr$dat.txt") || die "$!";
$starttime=(strftime "%H%M%S", localtime);

for (@path){
$razd++;
$page=1;
chomp $_;
s/1$//;
print DATA "\nrazzi", $razd x 3, "\n\n";
while ($page) {
my $path="$_$page";
my $browser = LWP::UserAgent->new();
my $response = $browser->get($path,
    'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8',
    'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Charset' => 'windows-1251,utf-8;q=0.7,*;q=0.7',
    'Accept-Language' => 'ru,en-us;q=0.7,en;q=0.3',
);
$contents = encode('utf8', decode('cp1251', $response->content));
print DATA "\n\n\nRAZDELL\n$_$page\n", $contents;
@data=split("\n", $contents);

for $dd (@data){
push(@alldata, $dd);
if($dd=~/<strong>тел.<\/strong>:.*&nbsp;/){$p++;}}
print  "\n", (strftime "%H%M%S", localtime), " Contacts $p $_$page compliting\n";
$page++;
if ($p==0){$page=0;}
$p=0;
}
}
print DATA "\n\nAll strings is $#alldata\n";
print "Start in $starttime\nAll strings is $#alldata\n";
close(DATA);


Добавлено @ 16:22
цикл ваял часа в 3 ночи. так что громко не смейтесь ...
главное что работает smile 

Это сообщение отредактировал(а) Axe79 - 30.7.2009, 16:23
PM MAIL   Вверх
Pfailed
Дата 30.7.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



Цитата(Axe79 @  30.7.2009,  16:09 Найти цитируемый пост)
по уму  красивее было б в одном скрипте скачать и отчистить от гипертекстовой разметкибез промежуточного баловства с файлами и дескрипторами

Естественно можно: HTML::TreeBuilder->new->parse_content($data);


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.