Browser 如何在谷歌浏览器之类的浏览器中打开CasperJS/PhantomJS文件?

Browser 如何在谷歌浏览器之类的浏览器中打开CasperJS/PhantomJS文件?,browser,web-scraping,phantomjs,casperjs,headless-browser,Browser,Web Scraping,Phantomjs,Casperjs,Headless Browser,我对使用无头浏览器(CasperJS/PhantomJS)是个新手,我用它来抓取网页,这样我就可以抓取AJAX网站了 但我有一个问题: 我需要在Google Chrome这样的普通浏览器中打开文件,那么有人知道是否有办法做到这一点吗? 我在文件“test.js”中已经有了这段代码: 如果我使用命令行(CMD)运行此文件,它可以工作: 但我也尝试将其更改为HTML文件,以便可以通过web浏览器打开: <html> <head> <title></

我对使用无头浏览器(CasperJS/PhantomJS)是个新手,我用它来抓取网页,这样我就可以抓取AJAX网站了

但我有一个问题:

我需要在Google Chrome这样的普通浏览器中打开文件,那么有人知道是否有办法做到这一点吗?

我在文件“test.js”中已经有了这段代码:

如果我使用命令行(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>

var casper=require('casper').create();
卡斯珀,开始http://casperjs.org/,函数(){
this.echo(this.getTitle());
});
卡斯珀,然后打开http://phantomjs.org,函数(){
this.echo(“a”+this.getTitle());
});
casper.run();

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

有什么想法吗


编辑:我终于能够使用PHP在浏览器上运行CasperJS了。下面是PHP代码,如果将来有人需要它,我希望它能帮助您:

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


字体:

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

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


如果你想在浏览器中进行抓取,最好的选择是创建。

你不能直接从谷歌浏览器或火狐浏览器上运行CasperJS

如果这是可能的,它将允许违反法律

要绕过任何限制,您应该在服务器端执行web抓取

根据您的说明,您使用的是PHP,因此您可以为CasperJS使用PHP包装器:

  • (上述图书馆的扩建部分)
或者,您可以使用
exec
命令:

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

非常感谢。但遗憾的是,我不能使用浏览器扩展,因为我必须使用HTML/JavaScript或PHP构建一个网站,我需要使用编程语言从一些网站获取数据。好的,PHP和PhantomJS都在服务器上工作,所以你仍然可以这样做。但是为什么不先从一些刮擦101的书或文章开始呢?好吧,我必须刮擦一些酒店网站来获取它们的价格,而不是一本书或一篇文章。我已经尝试过使用PHP的“SimpleHTMLDOM”来刮取它们,它似乎可以很好地获取一些数据,但是如果我需要获取一个不在主HTML中的数据,它就不起作用了(因为这些站点倾向于进行AJAX调用)。所以,这就是为什么我尝试使用无头浏览器,成功地抓取动态站点。是的,PHP和PhantomJS在服务器上工作,但PhantomJS基于JavaScript,因此可能与PHP不兼容。谢谢@Grant Miller!这听起来好多了,因为我不打算每次需要刮取数据时都在命令行上运行它。因此,我已经安装了“php casperj”并粘贴了示例中的代码,但是当我尝试运行它时,我收到了这样一条消息:“致命错误:在C:\xampp\htdocs\web scraping\web scraping.php的第3行中找不到类'Browser\Casper',你知道如何修复它吗?顺便说一句,我还在php文件中尝试了exec命令,但是当我在Chrome中打开它时,我什么也没看到(没有打印结果)。我更改了“PhantomJS_可执行文件”的路径,因为我的文件位于C:\PhantomJS\bin:,所以我写了这个:最后,test1.js有以下内容:(这是我从phatom官方网站得到的一个示例)。那么,怎么了?我终于可以在PHP上运行CasperJS了!您的exec代码对我@Grant Miller不起作用,可能是因为我使用的是Windows而不是Linux?无论如何,我刚刚找到了另一个代码来做这件事,所以我会编辑我的第一篇文章,我会把它放在那里的人谁会有相同的问题。再次感谢!
$result = exec('PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs /usr/local/bin/casperjs script.js');
echo $result;