如何在Google Chrome浏览器中打开CasperJS / PhantomJS文件?

问题描述 投票:0回答:2

我是使用无头浏览器(CasperJS / PhantomJS)的新手,我正在使用它进行网页抓取,因此我可以抓取AJAX网站。

但我有一个问题:

我需要在谷歌浏览器这样的常用浏览器中打开该文件,所以有人知道是否有办法做到这一点?

我已将此代码放在文件“test.js”中:

var casper = require('casper').create();
casper.start('http://casperjs.org/', function() {
this.echo(this.getTitle());
});

casper.thenOpen('http://phantomjs.org', function() {
this.echo("a" + this.getTitle());
});

如果我使用命令行(CMD)运行此文件,它可以工作:

但我也尝试将其更改为HTML文件,以便可以通过Web浏览器打开:

<html>
<head>
    <title></title>
</head>
<body>
    <script>
        var casper = require('casper').create();
        casper.start('http://casperjs.org/', function() {
        this.echo(this.getTitle());
        });

        casper.thenOpen('http://phantomjs.org', function() {
        this.echo("a" + this.getTitle());
        });

        casper.run();
    </script>
</body>

当我在Google Chrome中打开此HTML文件时,出现此错误:

有任何想法吗?

编辑:我终于可以使用PHP在浏览器上运行CasperJS。这是PHP代码,如果有人在将来需要它,我希望它会帮助你:

<?php
    $text = exec("casperjs C:/Users/User/Desktop/CasperFile.js");
    echo $text;
?>

字体:Cannot pass CasperJS result back to PHP

browser web-scraping phantomjs casperjs headless-browser
2个回答
0
投票

您无法直接从Google Chrome或Firefox等浏览器运行CasperJS。

如果这是可能的话,它将允许违反same-origin policy

要绕过任何限制,您应该在服务器端进行网络抓取。

因为根据你的comment,你使用的是PHP,你可以使用PHP包装器来实现CasperJS:

或者,您可以使用exec命令:

$result = exec('PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs script.js');
echo $result;

0
投票

不幸的是它不起作用。您要做的是类似于使用视频播放器打开MS Word文件。

脚本不是HTML页面,它是一个程序,而Google Chrome不是CasperJS / PhantomJS,因此不会运行为它们设计的脚本。

如果你想在浏览器中进行抓取,最好的办法是创建a browser extension

© www.soinside.com 2019 - 2024. All rights reserved.