我想在服务器端执行以下操作:1)抓取网页2)模拟对该页面的点击,然后导航到新页面。3)刮掉新页面4)模拟新页面的一些按钮点击5)通过json或其他方式将数据发送回客户端我正在考虑将它与Node.js一起使用。但是我对我应该使用哪个模块感到困惑a)zombieb)Node.ioc)Phantomjsd)JSDOMe)其他的我已经安装了node,io但无法通过命令提示符运行它。PS:我在windows2008服务器上工作 最佳答案 Zombie.js和Node.io在JSDOM上运行,因此您可以选择使用JSDOM(或任何等效的包装器)、
我想在服务器端执行以下操作:1)抓取网页2)模拟对该页面的点击,然后导航到新页面。3)刮掉新页面4)模拟新页面的一些按钮点击5)通过json或其他方式将数据发送回客户端我正在考虑将它与Node.js一起使用。但是我对我应该使用哪个模块感到困惑a)zombieb)Node.ioc)Phantomjsd)JSDOMe)其他的我已经安装了node,io但无法通过命令提示符运行它。PS:我在windows2008服务器上工作 最佳答案 Zombie.js和Node.io在JSDOM上运行,因此您可以选择使用JSDOM(或任何等效的包装器)、
我正在计划一个供我自己在内部使用的网络服务,它接受一个参数,一个URL,并从该URL返回表示已解析DOM的html。通过已解决,我的意思是web服务将首先在该URL处获取页面,然后使用PhantomJS来“渲染”页面,然后在执行所有DHTML、AJAX调用等之后返回结果源。然而,基于每个请求(我现在正在这样做)启动幻象是方式太慢了。我宁愿拥有一个PhantomJS实例池,其中一个始终可以为我的web服务的最新调用提供服务。以前有没有在这种事情上做过任何工作?我宁愿把这个web服务建立在别人的工作之上,也不愿从头开始为自己编写一个池管理器/http代理服务器。更多上下文:我在下面列出了到
我正在计划一个供我自己在内部使用的网络服务,它接受一个参数,一个URL,并从该URL返回表示已解析DOM的html。通过已解决,我的意思是web服务将首先在该URL处获取页面,然后使用PhantomJS来“渲染”页面,然后在执行所有DHTML、AJAX调用等之后返回结果源。然而,基于每个请求(我现在正在这样做)启动幻象是方式太慢了。我宁愿拥有一个PhantomJS实例池,其中一个始终可以为我的web服务的最新调用提供服务。以前有没有在这种事情上做过任何工作?我宁愿把这个web服务建立在别人的工作之上,也不愿从头开始为自己编写一个池管理器/http代理服务器。更多上下文:我在下面列出了到
我正在尝试使用jsdom加载本地HTML文件,这是代码varconfig={file:"filename",scripts:["node_modules/jquery/dist/jquery.min.js"]done:function(err,window){console.log(window.document.URL)console.log(window.document.children)}}jsdom.env(config)window.document.URL显示正确的url,但window.document.innerHTML没有任何数据。我什至尝试过varconfig={
我想加载一个HTML文件(使用fs.read),使用jsdom加载DOM,然后更改正文Node的文本(通过jquery)。然后我想将编辑后的DOM窗口保存为HTML文件。有没有办法做到这一点?我使用的代码如下:fs.readFile(file,'utf8',function(error,data){jsdom.env(data,[],function(errors,window){var$=require('jquery')(window);$(document.body.getElementsByTagName("*")).each(function(){varcontent=$
我正在使用jsdom、jquery和node.js来抓取网站。有什么方法可以发布表单并使用jsdom获取生成的下一页窗口。这里是代码varhttpAgent=require('http-agent'),jsdom=require('jsdom'),request=require('request');request({uri:'http://www.orbitz.com'},function(error,response,body){if(error&&response.statusCode!=200)console.log('Erroronrequest');jsdom.env({h
我正在尝试操作远程HTML并将其返回操作。我决定使用JSDOM,但不知道如何取回被操纵的HTML。有什么想法吗?jsdom.env({url:"http://www.cnn.com",scripts:["http://code.jquery.com/jquery.js"],done:function(err,window){var$=window.$;console.log("HNLinks");varsrc=$(".ghciTopStoryImage1img").attr('src','http://lorempixel.com/396/220/');varheadline=$(".
我发现了一些关于人们遇到类似问题的引用资料,但答案总是如此,请确保在完成后调用window.close()。但是,这似乎对我不起作用(Node0.8.14和jsdom0.3.1)一个简单的复制varutil=require('util');varjsdom=require('jsdom');functiondoOne(){varhtmlDoc='';jsdom.env(htmlDoc,null,null,function(errors,window){window.close();});}for(vari=1;i我得到的输出是500:{rss:108847104,heapTotal:1
我正在从node.js迁移到io.js,而我的旧node.js代码不适用于jsdom@5。varjsdom=require('jsdom');var$=require('jquery')(jsdom.jsdom().createWindow);这是错误:/tmp/iojs/node_modules/jquery/dist/jquery.js:28if(!w.document){^TypeError:Cannotreadproperty'document'ofundefinedatmodule.exports(/tmp/iojs/node_modules/jquery/dist/jque