我对多个casperjs实例同时工作有点困惑。
我的理解是,如果我们有“casperjs”c.1.js,c.2.js,...,cxjs(他们有相同的代码)那么它将创建多个进程,他们应该单独管理资源,如单独的cookie文件。如果我们多次使用“casperjs”c.x.js文件,它将共享相同的cookie文件。
我的理解是对的吗?
感谢您的任何意见。
答案 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