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

 望天打股 发布于 2023-01-30 11:14

我想知道如何在我们的代码中设置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地址来检查一切是正确的(我写的机器人,将经常改变他们的代理人).

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

    如何编写将由CasperJS使用特定CLI选项运行的单个脚本?

    使用单个脚本文件没有干净的解决方案,因为"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中它打开了一个吞噬第一行代码的多行字符串.

    2023-01-30 11:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有