Я Даниэль и совершенно новый в Perl.
Моя проблема - анализ динамического c веб-сайта.
У меня есть локальный веб-сайт, который заполнен динамически. Мой perl скрипт загружает только незаполненную версию
> `<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" dir="ltr">
<head>
<title>About</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"/>
<!-- Load the 'handheld' style sheet by default -->
<link type="text/css" rel="stylesheet" href="handheld.css" id="stylesheetused"/>
<script type="text/javascript">
if (((window.devicePixelRatio <= 1.0) && (screen.width >= 801)) || (navigator.userAgent.indexOf("MSIE") !== -1) ) {
document.getElementById('stylesheetused').href='desktop.css';
}
</script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="ServerInterface.js"></script>
<script type="text/javascript" src="HeaderFooter.js"></script>
<script type="text/javascript" src="About.js"></script>
</head>
<body>
<!-- Import the shared page header. -->
<div id="shared-header"></div>
<script type="text/javascript">
$("#shared-header").load("header.html", function (){
serverInterface.getFactoryConfig(headerFooter.headerCallback);
});
</script>
<!-- The main configuration form. -->
<div class="config-form">
<div class="config-title">
Hardware
</div>
<!-- Display the product name. -->
<div class="config-element-top">
<span id="display-inline" class="config-name">Name:</span>
<span id="product-type" class="read-only-text">Not available</span>
</div>
<!-- Display the product revision. -->
<div class="config-element-middle">
<span id="display-inline" class="config-name">Revision:</span>
<span id="product-rev" class="read-only-text">Not available</span>
</div>`
Части "Нет в наличии", где динамически заполняется js. первое «Недоступно» - это то, что мне нужно.
У меня есть perl скрипт, который находит первое «Недоступно», но мне нужен заполненный.
<span id="product-type" class="read-only-text">Denon AVR-X4500H</span>
мой скрипт
#!/usr/bin/perl -w
use LWP::Simple;
use HTML::TreeBuilder::XPath;
use Data::Dumper;
use strict;
my $debug=1;
my $page = get 'http://192.168.1.65/settings/about.html' or die $!;
my $p = HTML::TreeBuilder::XPath->new_from_content( $page );
binmode( STDOUT, ':utf8');
my @names= $p->findnodes( '//div[@class="config-element-top"]')->[0];
foreach my $name (@names){
my $title = $name->findvalue( './/span[@id="product-type"]');
print "Model: $title\n";
}
Выход
Model: Not available
как загрузить заполненную версию?
с уважением