这个https://www.npmjs.com/package/phantom#functionality-details页面显示:
您还可以通过为phantom.create()指定其他参数,将命令行开关传递给phantomjs进程,例如:
phantom.create '--load-images=no', '--local-to-remote-url-access=yes', (page) ->
或通过在options *对象中指定它们:
phantom.create {parameters: {'load-images': 'no', 'local-to-remote-url-access': 'yes'}}, (page) ->
这些示例仅在咖啡脚本中,也暗示了create函数可以采用
create('string',function)
或者
create([object object],function)
但实际上第一个期望的参数是函数!
我真的很想尝试http://phantomjs.org/api/command-line.html我可能有一个错误的主意,但对我来说,它们似乎可以在create函数中使用(就在您执行createPage之前),我错了吗
我尝试了几件事,最合乎逻辑的是:
var phantom = require('phantom');
phantom.create(function(browser){
browser.createPage(function(page){
page.open('http://example.com/req.php', function() {
});},{parameters:{'proxy':'98.239.198.83:21320'}});});
这样页面就打开了。我知道这是因为我正在将req.php将$ _SERVER对象保存到txt填充中,但是REMOTE_ADDR和REMOTE_PORT标头不是我设置的代理中的标头。它们没有作用。我也尝试过:
{options:{'proxy':'98.239.198.83:21320'}}
当文档调用该对象时,options *对象*见上文^
和
'--proxy=98.239.198.83:21320'
我还通过phantom模块进行了挖掘以找到create函数。它不是用js编写的,至少我看不到它。它必须是C ++。看起来该模块已更新,但是模块内部的示例看起来像旧代码。
我该怎么做呢?
编辑:
var phantom = require('phantom');
phantom.create(function(browser){
browser.createPage(function(page){
browser.setProxy('98.239.198.83','21320','http', null, null, function(){
page.open(
'http://example.com/req.php', function() {
});});});});
这不会产生任何错误,并且页面会被抓取,但是代理将被忽略。
{ parameters: { 'proxy': 'socks://98.239.198.83:21320' } }
他们没有更新文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句