gpt4 book ai didi

javascript - CasperJS:在代码中配置代理选项

转载 作者:数据小太阳 更新时间:2023-10-29 04:32:25 25 4
gpt4 key购买 nike

我想知道我们如何在代码中设置 cli 参数,而不是像这样将它们放在命令的末尾:

casperjs casper_tor.js --proxy=127.0.0.1:9050 --proxy-type=socks5

我已经测试过类似的东西,但没有用:

var casper=require('casper').create();

casper.cli.options["proxy"] = "127.0.0.1:9050";
casper.cli.options["proxy-type"] = "socks5";
...
casper.run();

我想要实现的是在我的代码中设置新的代理并从 whatsmyip.com 中删除我的新 IP 地址以检查一切是否正确(我正在编写会经常更改其代理的机器人)。

最佳答案

这不是对您问题的严格回答,而是对更一般的问题的回答:

How can I write a single script that will be run by CasperJS using specific CLI options?

没有使用单个脚本文件的干净解决方案,因为“shebang”行 #!/bin/... 非常有限。事实上,在大多数操作系统上,它仅支持解释器名称后的单个参数。

“正确”的解决方案当然是使用多个脚本,通常是一个 bash 脚本,它将使用正确的选项执行您的 CasperJS 脚本。

但是……

有一个非常古老的技巧可以解决这个问题,即多语言脚本。它涉及滥用语言特性来编写一个文件,该文件是一个有效的脚本文件,分为两个部分(或更多)口译员,做两件不同的事情。

在这种情况下,由于 shebang 行,脚本将首先由 Bash 读取。该脚本将指示 Bash 使用特定选项在脚本本身 上执行 CasperJS,然后终止。 CasperJS 将跳过针对 Bash 的行并运行脚本的其余部分。

JavaScript 版本

#!/bin/sh
//bin/true; exec casperjs --proxy=127.0.0.1:8003 test "$0" "$@"

(rest of JavaScript file)

这里的技巧是 // 在 Javascript 中开始注释,而在 Bash 中它只是第一行代码的一部分。

CoffeeScript 版本

#!/bin/sh
""""exec casperjs --proxy=127.0.0.1:8003 test "$0" "$@" #"""

(rest of CoffeeScript file)

这里的技巧是 """" 被 Bash 跳过,因为它只是两个空字符串,而在 CoffeeScript 中它打开了一个多行字符串,吞没了第一行代码。

关于javascript - CasperJS:在代码中配置代理选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21475273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com