如何使用保存在数据库中的URL作为使用php的casperjs中的源URL的源?

时间:2013-02-18 21:20:12

标签: php casperjs

我有一个小问题,我是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?

我正在尝试为每个提供的网址制作屏幕截图。

2 个答案:

答案 0 :(得分:0)

您可以通过shell命令将URL传递给casperjs进程:

CasperJS CLI commands

e.g。 casperjs --crawlurl = http://example.com

然后,您可以使用类似shell_exec的函数从PHP调用casperjs进程:

shell_exec

请注意,对于普通服务器提供商,他们可能会阻止使用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;

});

然后遍历链接并捕获它们。

祝你好运!