0

小さな問題があります。casperjs は初めてなので、データベース クエリの結果をループする現在の php スクリプトと連携して動作するかどうか疑問に思っていました。

<?php
$urls = query url database

foreach($url as $url){
   then I send an execute command to casperjs.
}
?>

次に、ループされた URL を送信する 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 に送信するにはどうすればよいですか?

提供された各 URL のスクリーンショットを作成しようとしています。

4

2 に答える 2

0

phpスクリプトを使用して、タグ内のURLをエコーすることができます。

<?php
$urls = do_query();
foreach($urls as $url){
    echo "<a href=\"$url\"">$url</a><br />;
}
?>

casperjsでjQueryを挿入します。次に、すべてのリンクでjQueryセレクターを使用してcasperjs Evaluation()を使用し、すべてのリンクを再度返します。

var links = this.evaluate( function() {

    var $ = jQuery; // map jQuery to $

    var links = [];

    $('a').each( function() {

        links.concat($(this).attr('href'));

    });

    return links;

});

次に、リンクをループしてキャプチャします。

幸運を!

于 2013-02-28T20:10:36.740 に答える
0

シェル コマンドを使用して URL を casperjs プロセスに渡すことができます。

CasperJS CLI コマンド

例: casperjs --crawlurl= http://example.com

次に、shell_exec のようなものを使用して、PHP から casperjs プロセスを呼び出すことができます。

shell_exec

通常のサーバー プロバイダーの場合、shell_exec の使用がブロックされる可能性があることに注意してください。

于 2013-02-19T02:40:05.033 に答える