Ben*_*oft 13 proxy node.js phantomjs
这个https://www.npmjs.com/package/phantom#functionality-details页面说:
您还可以通过为phantom.create()指定其他参数来将命令行开关传递给phantomjs进程,例如:
phantom.create '--load-images=no', '--local-to-remote-url-access=yes', (page) ->
Run Code Online (Sandbox Code Playgroud)
或者通过在options*对象中指定它们:
phantom.create {parameters: {'load-images': 'no', 'local-to-remote-url-access': 'yes'}}, (page) ->
Run Code Online (Sandbox Code Playgroud)
这些示例仅在咖啡脚本中,并且它们暗示了create函数可以采用的
create('string',function)
Run Code Online (Sandbox Code Playgroud)
要么
create([object object],function)
Run Code Online (Sandbox Code Playgroud)
但真正的第一个参数是功能!
我真的很想尝试http://phantomjs.org/api/command-line.html我可能有错误的想法,但对我来说它看起来像是可以在创建函数中使用(就在你创建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'}});});
Run Code Online (Sandbox Code Playgroud)
所以页面打开了.我知道这是因为我正在使req.php将$ _SERVER对象保存到txt pad但是,REMOTE_ADDR和REMOTE_PORT标头不是我设置的代理中的标头.它们没有效果.我也尝试过:
{options:{'proxy':'98.239.198.83:21320'}}
Run Code Online (Sandbox Code Playgroud)
当文档调用该对象时,选项* object*见上文^
和
'--proxy=98.239.198.83:21320'
Run Code Online (Sandbox Code Playgroud)
我还通过幻像模块挖掘了一下创建函数.它不是用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() {
});});});});
Run Code Online (Sandbox Code Playgroud)
这不会产生错误,页面会被删除但代理会被忽略.
小智 6
至于幻影2.0.10版本,以下代码在我的Windows机器上运行得很好
phantom.create(["--proxy=201.172.242.184:15124", "--proxy-type=socks5"])
.then((instance) => {
phInstance = instance;
return instance.createPage();
})
.then((page) => {
sitepage = page;
return page.open('http://newsdaily.online');
})
.then((status) => {
console.log(status);
return sitepage.property('title');
})
.then((content) => {
console.log(content);
sitepage.close();
phInstance.exit();
})
.catch((error) => {
console.log(error);
phInstance.exit();
});
Run Code Online (Sandbox Code Playgroud)
{ parameters: { 'proxy': 'socks://98.239.198.83:21320' } }
Run Code Online (Sandbox Code Playgroud)
他们没有更新他们的文档。
| 归档时间: |
|
| 查看次数: |
25599 次 |
| 最近记录: |