如何给phantomjs组件加代理

发布于 2022-09-03 14:30:58 字数 149 浏览 9 评论 0

在pyspider里面,通过 proxy可以设置代理IP,但需要通过phantomjs去请求带有js的网页时,phantomjs并不能使用通过在crawl()中设置的代理,请问该如何设置?看了一下phantomjs的官方文档,貌似也没有很详细的介绍。求解决思路,是否需要修改源码?谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

叹沉浮 2022-09-10 14:30:59

1、升级PhantomJS到最新版(老版本不支持设置代理,官方的文档木有相关说明)
2、修改phantomjs_fetcher.js(自己搜索一下,在pyspider/fetcher目录下)
在service的function中添加如下代码(自己可以根据实际情况优化):

        //set proxy
        if (fetch.proxy) {
            var p = fetch.proxy.split(":");
            p_ip = p[0];
            p_port = p[1];
            phantom.setProxy(p_ip, p_port, "HTTP");
        } else {
            phantom.setProxy("");
        }

其实核心就是PhantomJS可以使用 phantom.setProxy 方法设置代理

烟燃烟灭 2022-09-10 14:30:59

/**

  • proxy.mimvp.com

  • 2017.6.22
    *

  • http : phantomjs --proxy-type=http --proxy=138.68.161.157:8080 mimvp-phantomjs.js

  • socks5 : phantomjs --proxy-type=socks5 --proxy=82.209.150.212:45454 mimvp-phantomjs.js
    *

*/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文