Phantom.js / Casper.js与旋转代理?

时间:2013-05-25 05:05:03

标签: javascript node.js phantomjs casperjs proxy-server

我有一个简单的目标:使用phantom.js(开箱即用)或casper.js(更好更容易)加载网页,但使用代理并将其旋转列出当前的一个是坏的(即网页加载失败或类似的东西)。

我知道casper.js有--proxy param但是它指示用户只指定一个代理并在运行时使用它。

问题#1是:如何以编程方式动态旋转代理?

我做了一些研究并找到了这个node-requester,但它没有与casper.js集成。我试图在code中提取出代理功能但是并没有真正理解它是如何工作的(我猜我不是那么聪明)。

问题#2:是否有一些代理轮换的简单实现适用于phantom.jscasper.js

我更喜欢使用花哨的casper.js,但也可以使用phantom.js裸露。

2 个答案:

答案 0 :(得分:6)

我曾经有同样的问题,我曾与PhantomJS合作过。我们最终得到的解决方案是将PhantomJS作为较大Java / Scala服务器的子进程运行,然后处理失败并在需要时分配不同的代理(通过在-proxy arg中重新运行不同的参数)。

答案 1 :(得分:0)

我对Puppeteer也有同样的问题,尽管想法是一样的。

我通过https://www.npmjs.com/package/gimmeproxy-request启动了本地Node.js代理,并将Puppeteer实例指向了它。

使用本地代理服务器,我能够验证页面何时无法加载并重试请求。