我無法通過其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