pyspider - 如何给phantomjs组件加代理

查看:132
本文介绍了pyspider - 如何给phantomjs组件加代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

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 方法设置代理

这篇关于pyspider - 如何给phantomjs组件加代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆