多个 casperjs 实例是否共享相同的 cookie

Do multiple casperjs instances share same cookies

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

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

我的理解对吗?

感谢任何意见。

每个 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" != ""  ]
do
let "num++"
echo instance_"$num" >>/root/t
/tmp/casperjs/bin/casperjs --cookies-file=/root/casperjs/cookies_"$num".txt /root/casperjs/"" >>/root/t &
echo "$num  "
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