如何在 Google Chrome 等浏览器中打开 CasperJS/PhantomJS 文件?
How to open a CasperJS/PhantomJS file in a browser like Google Chrome?
我刚开始使用无头浏览器 (CasperJS/PhantomJS),我正在使用它进行网页抓取,因此我可以抓取 AJAX 个网站。
但是我有一个问题:
我需要在 Google Chrome 等普通浏览器中打开文件,所以有人知道是否有办法做到这一点吗?
我已经在文件中包含此代码 "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 文件,以便可以通过网络浏览器打开它:
<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
不幸的是,它不起作用。您要做的类似于用视频播放器打开 MS Word 文件。
脚本不是 HTML 页面,它是一个程序,Google Chrome 不是 CasperJS/PhantomJS 因此不会 运行 设计脚本为他们。
如果您想在浏览器中进行抓取,最好的办法是创建 a browser extension。
您不能 运行 直接从 Google Chrome 或 Firefox 等浏览器中使用 CasperJS。
如果可能的话,将允许违反 same-origin policy。
要绕过任何限制,您应该在服务器端进行网络抓取。
因为,根据您的 ,您正在使用 PHP,您可以为 CasperJS 使用 PHP 包装器:
- php-casperjs
- casperjs-php(上述库的扩展)
或者,您可以使用 exec
命令:
$result = exec('PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs script.js');
echo $result;
我刚开始使用无头浏览器 (CasperJS/PhantomJS),我正在使用它进行网页抓取,因此我可以抓取 AJAX 个网站。
但是我有一个问题:
我需要在 Google Chrome 等普通浏览器中打开文件,所以有人知道是否有办法做到这一点吗?
我已经在文件中包含此代码 "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 文件,以便可以通过网络浏览器打开它:
<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
不幸的是,它不起作用。您要做的类似于用视频播放器打开 MS Word 文件。
脚本不是 HTML 页面,它是一个程序,Google Chrome 不是 CasperJS/PhantomJS 因此不会 运行 设计脚本为他们。
如果您想在浏览器中进行抓取,最好的办法是创建 a browser extension。
您不能 运行 直接从 Google Chrome 或 Firefox 等浏览器中使用 CasperJS。
如果可能的话,将允许违反 same-origin policy。
要绕过任何限制,您应该在服务器端进行网络抓取。
因为,根据您的
- php-casperjs
- casperjs-php(上述库的扩展)
或者,您可以使用 exec
命令:
$result = exec('PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs script.js');
echo $result;