我有一个简单的目标:使用phantom.js
(开箱即用)或casper.js
(更好更容易)加载网页,但使用代理并将其旋转列出当前的一个是坏的(即网页加载失败或类似的东西)。
我知道casper.js有--proxy
param但是它指示用户只指定一个代理并在运行时使用它。
问题#1是:如何以编程方式动态旋转代理?
我做了一些研究并找到了这个node-requester,但它没有与casper.js
集成。我试图在code中提取出代理功能但是并没有真正理解它是如何工作的(我猜我不是那么聪明)。
问题#2:是否有一些代理轮换的简单实现适用于phantom.js
或casper.js
?
我更喜欢使用花哨的casper.js
,但也可以使用phantom.js
裸露。
答案 0 :(得分:6)
我曾经有同样的问题,我曾与PhantomJS合作过。我们最终得到的解决方案是将PhantomJS作为较大Java / Scala服务器的子进程运行,然后处理失败并在需要时分配不同的代理(通过在-proxy arg中重新运行不同的参数)。
答案 1 :(得分:0)
我对Puppeteer也有同样的问题,尽管想法是一样的。
我通过https://www.npmjs.com/package/gimmeproxy-request启动了本地Node.js代理,并将Puppeteer实例指向了它。
使用本地代理服务器,我能够验证页面何时无法加载并重试请求。