我想在服务器端执行以下操作:
1)抓取网页 2)模拟对该页面的单击,然后导航到新页面。 3)刮开新页面 4)模拟新页面上的一些按钮单击 5)通过json或其他方式将数据发送回客户端
我正在考虑将其与Node.js一起使用。
但是我对应该使用哪个模块感到困惑 a)corpse b)Node.io c)Phantomjs d)JSDOM e)其他
我已经安装了node,io,但是无法通过命令提示符运行它。
PS:我在Windows 2008 Server中工作
Zombie.js和Node.io在JSDOM上运行,因此您的选择要么与JSDOM(或任何等效的包装器)一起使用,要么是无头浏览器(PhantomJS,SlimerJS)或Cheerio。
根据您的要求,我可能会选择无头浏览器。特别是,我之所以选择CasperJS,是因为它具有良好而富于表现力的API,而且它又快速又可靠(它不需要像JSDOM那样重新发明如何解析和渲染dom或css的方法),而且非常容易与按钮和链接等元素进行交互。
您在CasperJS中的工作流程应大致如下所示:
casper.start(); casper .then(function(){ console.log("Start:"); }) .thenOpen("https://www.domain.com/page1") .then(function(){ // scrape something this.echo(this.getHTML('h1#foobar')); }) .thenClick("#button1") .then(function(){ // scrape something else this.echo(this.getHTML('h2#foobar')); }) .thenClick("#button2") thenOpen("http://myserver.com", { method: "post", data: { my: 'data', } }, function() { this.echo("data sent back to the server") }); casper.run();