多个casperjs实例共享相同的cookie

时间:2016-11-16 08:20:03

标签: cookies casperjs

我对多个casperjs实例同时工作有点困惑。

我的理解是,如果我们有“casperjs”c.1.js,c.2.js,...,cxjs(他们有相同的代码)那么它将创建多个进程,他们应该单独管理资源,如单独的cookie文件。如果我们多次使用“casperjs”c.x.js文件,它将共享相同的cookie文件。

我的理解是对的吗?

感谢您的任何意见。

1 个答案:

答案 0 :(得分:1)

每个phantomjs实例都有自己的object phantom.cookies, 如果你多次运行casperjs c.x.js,每个实例都有自己的cookie,如果你想单独存储这些cookie,你可以使用这样的bash脚本:

#!/bin/bash
# run it, e.g.: ./test.sh 10 snap.js  // 10 times snap.js
  export PHANTOMJS_EXECUTABLE=/tmp/casperjs/phantomjs        # ln -sf /tmp/casperjs/phantomjs /usr/local/bin
# export SLIMERJS_EXECUTABLE="/root/slimerjs-0.9.5/slimerjs" # ln -sf /root/slimerjs-0.9.5/slimerjs /usr/local/bin
num=0
while [ "$num" != "$1"  ]
do
let "num++"
echo instance_"$num" >>/root/t
/tmp/casperjs/bin/casperjs --cookies-file=/root/casperjs/cookies_"$num".txt /root/casperjs/"$2" >>/root/t &
echo "$num $1 $2"
done
exit 0

通过这样做,您将有几个将分别使用cookie的工作者。

<强> SlimerJS:

Cookie存储在mozilla配置文件中的sqlite数据库中。如果您想拥有持久性cookie,则不能指示像PhantomJS这样的文件,但是您应该创建永久性配置文件。请参阅profiles

另请阅读:
https://docs.slimerjs.org/current/api/cookie.html#cookie
https://docs.slimerjs.org/current/api/phantom.html#phantom-cookies