Я не могу получить узел по его идентификатору. Код прямолинейный и должен быть самообучающимся.Xpath не установит id
#!/usr/bin/perl
use Encode;
use utf8;
use LWP::UserAgent;
use URI::URL;
use Data::Dumper;
use HTML::TreeBuilder::XPath;
my $url = 'https://www.airbnb.com/rooms/1976460';
my $browser = LWP::UserAgent->new;
my $resp = $browser->get($url, 'User-Agent' => 'Mozilla\/5.0');
if ($resp->is_success) {
my $base = $resp->base || '';
print "-> base URL: $base\n";
my $data = $resp->decoded_content;
my $tree= HTML::TreeBuilder::XPath->new;
$tree->parse_content($resp->decoded_content());
binmode STDOUT, ":encoding(UTF-8)";
my $price_day = $tree->find('.//*[@id="price_amount"]/');
print Dumper($price_day);
$tree->delete();
}
код, приведенный выше принтами:
-> base URL: https://www.airbnb.com/rooms/1976460
$VAR1 = undef;
Как я могу выбрать узел по его ID?
Заранее спасибо.
Offtopic, но 'perl -Mojo -E 'say g (" https://www.airbnb.com/rooms/1976460 ") -> dom-> find (q {div [id =" price_amount "] }) -> text'' печатает '$ 285'. Mojo :: DOM - хороший модуль ... – jm666
Спасибо за подсказку! Я смотрел дальше в Mojo и, как будто, он использовал CSS-selecetors вместо XPath – 3und80