我正在做一些网页抓取(网站所有者的确定)并且遇到了移动滑块时更新的一些数据。
问题是这些数据是在一些javascript中。我正在使用perl Web :: Scraper,它允许CSS选择器和xpath选择器,但我似乎无法隔离javascript。
我尝试过属性选择器; script [src =“path_to.js”]普通节点选择器'脚本'和绝对css路径 - 根本不想工作。
有关如何获取脚本节点内容的任何想法吗?
答案 0 :(得分:0)
use HTML::Query ();
# get raw (unparsed) content of page into $content.
# eg: $mech->content or similar
my $content = qq|
<html>
<head>
<script type="text/javascript">
function init() {
var x = [1,2,3,4,5,6,7];
alert(x);
}
</script>
</head>
<body onload="init()">
</body>
</html>
|;
# This is a CSS selector ----------------------vvvvv
my ($e) = HTML::Query::Query(text => $content, 'script');
die "couldn't find script element!\n" unless defined $e;
# can't use as_text or as_trimmed_text from HTML::Element
print $e->as_XML."\n";
答案 1 :(得分:0)
这是一个Mojo::DOM示例,其中'text'
选择标记包含的位:
use Mojo::DOM;
my $dom = Mojo::DOM->new( $content );
say $dom
->find( 'script' )
->map( 'text' )
->join( "\n" );
然而,听起来好像你可能试图获得JavaScript对DOM所做的事情,在这种情况下Perl可能无法看到它。