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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг страницы и сохранение результата в БД, Парсинг страницы и сохранение результата 
:(
    Опции темы
santin
Дата 20.7.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!

Мне нужно распарсить страницу и полученный текст сохранить в базе данных mysql...
Еще нужно получить с тех же страниц рисунки переименовать их и сохранить в той же таблице...
Пока только (для начала) хочу чтоб текст сохранялся...
Проблема в том, что сохраняет только первые два слова.... а больше ничего не выводится?! 

Код

#!/usr/bin/perl
use strict;
use LWP::Simple qw(!head);
use HTML::TokeParser;
use URI::Escape;
use lib qw(/usr/local/www/cgi-bin);
use CGI qw(:standard);
use WebDB;

print header( -charset=>"utf8"), start_html(-title =>"Koodoo!");

my $cod = $ARGV[0];
my ($text1, $texta, $query);

$cod = lc (param("choise"));

print start_form (),
    br (),
    textfield (-name => "choise", -size => 6, maxlength => 8),
    submit (-name => "choise", -value => "Enter zhmak!"),

    end_form ();

my $connect = WebDB::connect();

my $pd = get('http://koodoo.ru/index.php?type=distribution&page=tradegood&tradegoodid='."$cod");
my $p = new HTML::TokeParser (\$pd);
while (my $token = $p->get_tag('div', 'td')) 
{
    my $style = $token -> [1]{style};
    if ($style eq 'margin-left:3px') 
    {
    my $text1 = $p->get_trimmed_text('/div');

        print  "<b> $text1 </b>";

    my $query = "INSERT INTO koodoo_descr (l_part, r_part) values ('$text1', '$texta')";
    $connect->do ($query);

    $query->execute;


    }

    my $stylea = $token -> [1]{style};
    if ($stylea eq 'vertical-align:top;font-weight:normal') 
    {
    my $texta = $p->get_trimmed_text('/td');
    #$query .= $texta->{l_part} ."=". ($texta->{value});
    print "- $texta. <br>";
    #$query->execute;
    }
    

    my $stylea = $token -> [1]{style};
    if ($stylea eq 'vertical-align:top;font-weight:normal;') 
    {
    my $texta = $p->get_trimmed_text('/td');
    print "- $texta. <br>";
    #$query .= $texta->{l_part} ."=". ($texta->{value});
    #$query->execute;
    }
}
    $query->finish();
    $connect->disconnect();

exit();



Знаю, что мой вопрос легко могут решить регулярные выражения, но к сожалению я их не понимаю(((

Я не прошу переписывать за меня код, просто укажите на мои ошибки...

Это сообщение отредактировал(а) santin - 20.7.2009, 09:46
PM MAIL   Вверх
santin
Дата 20.7.2009, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Нашел свою ошибку...
Код

  $query->execute;

надо было поставить в конце всего вывода smile 
теперь вопрос в другом.. он мне каждую строчку сохраняет в новой строке таблицы, а как вставить в одну строчку весь полученный результат, а то получается один запрос и 20 новых строк в таблице!!!
PM MAIL   Вверх
shamber
Дата 21.7.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



my $query = "INSERT INTO koodoo_descr (l_part, r_part) values ('$text1', '$texta')";
    $connect->do ($query); 

Эти строки нужно вынести из цикла.

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


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

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


 




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


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

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