首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用superagent、eventproxy与cheerio实现简单爬虫

使用callback进行异步请求,一般有eventproxy或者async两种选择。 eventproxy与async的区别 其实eventproxy与async都是用来做异步流程控制的。...如果你爬取的请求小于10次的时候,你可以选择用eventproxy,如果你爬取的请求成百上千的话,那就需要考虑使用async,因为你一次性发起成百上千次请求,原网站可能会认为你是在恶意请求,直接把你访问...在这里我选择eventproxy进行异步爬取数据。使用eventproxy需要依赖eventproxy包,所以,首先npm install导入eventproxy依赖。 ?...接着,得到一个eventproxy实例 ? 然后我们要发起40次请求就需要用到eventproxy的after方法,after方法适合重复的操作,比如读取10个文件,调用5次数据库等。...然后通过eventproxy的emit方法告诉ep实例我本次请求结束了。当40次请求全部结束后eq.after就会执行回调把取到的数据返回客户端。到这里40次并发请求爬取数据成功执行。

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS读书心得:《JavaScript框架设计》——第12章 异步处理

    而@朴灵的EventProxy则是其中一个缓解回调函数之痛的工具库。  ...EventProxy作为一个事件系统,通过after、tail等事件订阅方法提供带约束的事件触发机制,“约束”对应“前置条件”,因此我们可以利用这种带约束的事件触发机制来作为异步执行模式下的流程控制表达方式...EventProxy var ep = EventProxy.create('a', 'b', execC) ep.fail(function $noop$(){}) execA(ep.done('a'...)) execB(ep.done('b'))    可以看到使用EventProxy时回调函数的数目并没有减少,但回调地狱却不见了(验证了回调地狱不是由回调函数引起,而是由异步执行模式下的流程控制引起的...)    但由于EventProxy采用事件机制来做流程控制,而事件机制好处是降低模块的耦合度,但从另一个角度来说会使整个系统结构松散难以看出主干模块,因此通过事件机制实现流程控制必然导致代码结构松散和逻辑离散

    89370

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券