无法在CasperJS中打开Facebook

时间:2014-11-26 17:52:05

标签: javascript facebook phantomjs casperjs

var picCounter = 1
    , url = 'https://www.facebook.com/video.php?v=10152880761616654'


var casper = require('casper').create({
    verbose: false
, logLevel: 'debug'
, stepTimeout: 15000
})

casper.start()

casper.userAgent('Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')

casper.thenOpen(url, function() {
    console.log('in casper.start')
})

casper.wait(3000, function() { 
    console.log('capturing after start')
    console.log(this.getCurrentUrl())
})
casper.run()

这是日志

[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: https://www.facebook.com/video.php?v=101528807616
16654, HTTP GET
[debug] [phantom] Navigation requested: url=https://www.facebook.com/video.php?v
=10152880761616654, type=Other, lock=true, isMainFrame=true
[warning] [phantom] Loading resource failed with status=fail: https://www.facebo
ok.com/video.php?v=10152880761616654
[debug] [phantom] Successfully injected Casper client-side utilities
in casper.start
[info] [phantom] Step 2/3: done in 151ms.
[info] [phantom] Step 3/3: done in 160ms.
[info] [phantom] wait() finished waiting for 3000ms.
capturing after start
about:blank
[info] [phantom] Done 3 steps in 3166ms

getCurrentUrl()不断返回about:blank

有什么我可以尝试使其有效吗?我的目标是转到状态/照片/视频等页面,以获取该页面的评论。

我正在使用CasperJS 1.0.4和PhantomJS 1.8.2

1 个答案:

答案 0 :(得分:0)

从1.8.2版本开始修复了许多错误。我建议你使用PhantomJS 1.9.8。此外,CasperJS的1.1.0-beta3版本在1.0.4上有很多改进,基本上是稳定的。

这可能没有必要,但在PhantomJS中使用Internet Explorer用户代理字符串是一个坏主意,因为该页面可能会提供针对IE优化的JavaScript / CSS,这在PhantomJS中无法使用。一个例子是谷歌。始终使用适当的用户代理,例如PhantomJS 1.x:

  

Mozilla / 5.0(Windows NT 6.0)AppleWebKit / 535.1(KHTML,与Gecko一样)Chrome / 13.0.782.41 Safari / 535.1