我无法通过其ID获取节点。代码很简单,应该是自我解释。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'说g(“https://www.airbnb.com/rooms/1976460”) - > dom-> find(q {div [id =“price_amount”] }) - > text''打印$ 285'。 Mojo :: DOM是一个很好的模块... – jm666 2014-09-13 16:34:17
感谢您的提示!我进一步研究了Mojo,并且喜欢它使用CSS选择器代替XPath – 3und80 2014-09-16 06:20:38