此代码打开Google,搜索casperjs并输出页面标题:
var results = []
var casper = require('casper').create({
verbose: true,
logLevel: 'debug',
pageSettings: {
loadImages: false, // The WebPage instance used by Casper will
loadPlugins: false, // use these settings
userAgent: 'Mozilla
我目前有两个CasperJS脚本,为了便于使用,我想将它们合并成一个。for为链接( <a>元素)抓取一个网页。所有得到的链接都存储在一个数组urls中。脚本test2.js获取一个link并从iframe提取youtube src链接。
如何收集所有链接(test1.js),然后访问每个链接以提取youtube链接(test2.js),最后将YouTube链接存储在数组中并显示结果?
test1.js
var urls = [];
var casper = require('casper').create();
function getNumberOfItems(
这样的事情对我来说似乎很合乎逻辑,但却导致了phantom的wtfcrash (这是日志中的名称,但没有提供有用的信息)……
do {
casper.then(function() {
var targetFound = false;
links = this.evaluate(getLinks);
var searchResultsAr = [];
for (var link in links) {
searchResultsAr.push(links[link].replace('/u
当我使用CasperJS抓取一个网站时,我遇到了一些问题。这个网站像Twitter一样是动态加载的,所以我想做无限滚动,感谢@Artjom B。我找到了你的代码来做这件事。
var tryAndScroll = function (casper) {
try {
casper.echo('SCROLL!!');
casper.scrollToBottom();
if (casper.exists('div.loading')) {
var curItems = casper.eva
我试图以一种可移植的方式运行CasperJS,而不是在Windows中设置path变量。目前,通过将幻影of可执行文件以及CasperJS目录的全部内容移到批处理文件夹中,我已经部分地完成了工作。我还编辑了批处理文件,使其使用当前目录初始化casperJS,这是所有文件所在的位置。
下面是包含所有文件的我的目录:
我的casperjs.bat文件:
@ECHO OFF
set CASPER_PATH=%~dp0
set CASPER_BIN=%CASPER_PATH%bin\
set ARGV=%*
call phantomjs "%CASPER
我正在尝试使用下面的程序等待5秒,然后单击下一个链接。但是我看到casper.wait根本没有等待5秒。
我需要等待5秒,以便我想要抓取的url上的ajax代码有足够的时间加载。
var casper = require('casper').create({
clientScripts: ['includes/jquery-1.11.1.min.js'],
logLevel: "debug", // Only "info" level messages will be logged
只是为了澄清,我不想等待一个条件,简单地暂停n秒。这就是我拥有的代码,但是id并不像我期望的那样工作,我怀疑"wait“是异步的。我想更改代码,让它打印1,等待5秒,打印2,然后打印3。现在,它打印1,打印3,然后等待5秒,然后打印2。
var casper = require('casper').create();
var x = require('casper').selectXPath;
var fs = require('fs');
var parsedFile = "pfile.txt";
casper.st