我有一个小问题,我是casperjs的新手,所以我想知道casper是否可以与我当前运行我的数据库查询结果的PHP脚本一起工作。
<?php
$urls = query url database
foreach($url as $url){
then I send an execute command to casperjs.
}
?>
然后这里是js代码,我想要发送循环网址。
var casper = require('casper').create({
viewportSize: {
width: 1024,
height: 768
}
});
casper.start(**URL from PHP HERE**, function() {
this.capture('shy.png', {
top: 0,
left: 0,
width: 1024,
height: 1000
});
});
casper.run();
我的问题是我如何使用$ url作为url源值发送命令给casperjs?
我正在尝试为每个提供的网址制作屏幕截图。
答案 0 :(得分:0)
您可以通过shell命令将URL传递给casperjs进程:
e.g。 casperjs --crawlurl = http://example.com
然后,您可以使用类似shell_exec的函数从PHP调用casperjs进程:
请注意,对于普通服务器提供商,他们可能会阻止使用shell_exec。
答案 1 :(得分:0)
您可以使用php脚本回显标签中的网址。
<?php
$urls = do_query();
foreach($urls as $url){
echo "<a href=\"$url\"">$url</a><br />;
}
?>
使用casperjs注入jQuery。然后在所有链接上使用带有jQuery选择器的casperjs evaluate()来再次返回所有链接。
var links = this.evaluate( function() {
var $ = jQuery; // map jQuery to $
var links = [];
$('a').each( function() {
links.concat($(this).attr('href'));
});
return links;
});
然后遍历链接并捕获它们。
祝你好运!