Meneldor, так и сделал, вроде работает.
Еще вопрос. Контекстный код размещен более чем на 2700 страницах, но система нашла только 32... |
А вот с этим вопрос уже в официальный саппорт САПЕ - новые страницы собирает индексатор САПЕ, и по какому принципу он по ним ходит - мне самому совершенно непонятно :).
|
Изменил скрипт
Цитата:
$hash{msg} = $sape_context->replace_in_page_text($hash{msg}); Текст возвращается, но нет кода-идентификатора (в том числе для блока ссылок), он должен быть или нет? Как проверить, работает ли вывод ссылок? |
Код для вызова из перлового скрипта блока ссылок и контекстных ссылок вместе
Цитата:
Код для вызова из перлового скрипта блока ссылок и контекстных ссылок вместе, используя новый скрипт для Perl: require "/корень сайта/индентификатор/SAPEnew.pm"; my $sape = new SAPE::Client( user => 'индентификатор', db_dir => '/корень сайта/индентификатор', force_show_code => '1', ); $hash{'SAPE_LINKS'} = $sape->return_links; my $sape_context = new SAPE::Context( user => 'индентификатор', db_dir => '/корень сайта/индентификатор', force_show_code => '1', ); Далее в коде, где передается страница msg, для обработки страницы я использую функцию: $hash{msg} = $sape_context->replace_in_page_text($hash{msg}); Проверенно, работает. |
помогите кто может... что-то не получается...
код примерно такой... но не получается ни контекстные ссылки ни обычные вставить... теги <sape_index>...</sape_index> выводятся, но система не видит и не индексит... # блок подготовки ссылок SAPE "$ENV{DOCUMENT_ROOT}/идентификатор/SAPE.pm" =~ /^(.+)$/; require $1; my $sape = new SAPE::Client( user => 'идентификатор', host => 'www.omar.ru', # необязательно, по умолчанию: $ENV{HTTP_HOST} charset => 'windows-1251', # необязательно, по умолчанию: windows-1251 db_dir => '$ENV{DOCUMENT_ROOT}/идентификатор', force_show_code => '1', ); $sapetmp = $sape->get_links; $HTML{'links_sape'} = "$sapetmp"; my $sape_context = new SAPE::Context ( user => 'идентификатор', host => 'www.omar.ru', # необязательно, по умолчанию: $ENV{HTTP_HOST} charset => 'windows-1251', # необязательно, по умолчанию: windows-1251 db_dir => '$ENV{DOCUMENT_ROOT}/идентификатор', force_show_code => '1', ); # end блок подготовки ссылок SAPE my $text_ = $SQL_result->{BODY}; $text_ = $sape_context->replace_in_text_segment($text_); .......................... $HTML{'BODY'} = $text_; .......................... my $parse_result = parse($filename); print $parse_result; в $filename - шаблон, в котором BODY и links_sape подставляются... |
На всякий случай, может кому-то пригодится. Столкнулся с такой проблемой. Сайт находится на корпоративном веб-сервере, который имеет выход в Интернет только через корпоративный прокси-сервер. Чтобы все работало через прокси необходимо в конструкторе SAPE::Client или Sape::Context передавать дополнительно параметр proxy => http://ваш_прокси:порт. А в коде модуля Sape.pm добавить одну строчку, которая выделена в следующем коде:
my $ua = LWP::UserAgent->new; $ua->agent($self->USER_AGENT . ' ' . $VERSION); $ua->timeout($self->{socket_timeout}); #Добавлено мной !!!!!!!!!!!!!!!!!!!! $ua->proxy('http', $self->{proxy}) if($self->{proxy}); #Добавлено мной !!!!!!!!!!!!!!!!!!!! my $data_raw; my $path = $self->_get_dispenser_path; |
Написал модуль Sape для одного Perl фреймворка. Не могли бы вы дать описание куда какой запрос делать, как его переваривать - хочу добавить эту функциональность в нем?... А то изучать исходный код отнимает слишком много времени.
|
Цитата:
|
Цитата:
Было бы хорошо если бы где-то можно было почитать, что где берется и и т.д. В каком виде можно данные забрать с сервера... А то чтобы написать плагин для обычных ссылок, мне пришлось добавить сайт, подождать пока кто-то что-то купит, потом посмотреть что отвечает сервер - в общем методом тыка долго очень. |
А чем не подойдёт тот, что в Сапе? Любопытно ).
|
Часовой пояс GMT +3, время: 06:30. |
Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.