栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

抓取网页并通过单击按钮进行导航

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

抓取网页并通过单击按钮进行导航

Zombie.js和Node.io在JSDOM上运行,因此您的选择要么与JSDOM(或任何等效的包装器)一起使用,要么是无头浏览器(PhantomJS,SlimerJS)或Cheerio。

  • JSDOM相当慢,因为它必须在Node.js中重新创建DOM和CSSOM。
  • PhantomJS / SlimerJS是合适的无头浏览器,因此性能还可以,而且非常可靠。
  • Cheerio是JSDOM的轻量级替代品。它不会在Node.js中重新创建整个页面(它只是下载并解析DOM-不执行任何javascript)。因此,您无法真正单击按钮/链接,但是抓取网页的速度非常快。

根据您的要求,我可能会选择无头浏览器。特别是,我之所以选择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();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/469211.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号