位置: 编程技术 - 正文

利用Node.js制作爬取大众点评的爬虫(nodejs制作网站)

编辑:rootadmin

推荐整理分享利用Node.js制作爬取大众点评的爬虫(nodejs制作网站),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js怎么样,node. js教程,nodejs制作网站,用nodejs做的项目,node.js怎么用,node.js怎么用,node.js怎么用,nodejs制作网站,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

Node.js天生支持并发,但是对于习惯了顺序编程的人,一开始会对Node.js不适应,比如,变量作用域是函数块式的(与C、Java不一样);for循环体({})内引用i的值实际上是循环结束之后的值,因而引起各种undefined的问题;嵌套函数时,内层函数的变量并不能及时传导到外层(因为是异步)等等。

一、 API分析

大众点评开放了查询餐馆信息的API,这里给出了城市与cityid之间的对应关系,

链接: 1、start为步进数,表示分步获取信息的index,与nextStartIndex字段相对应;

2、cityid表示城市id,比如,合肥对应于;

3、regionid表示区域id,每一个id代表含义在start=0时rangeNavs字段中有解释;

4、categoryid表示搜索商家的分类id,比如,美食对应的id为,具体每一个id的含义参见在start=0时categoryNavs字段;

5、sortid表示商家结果的排序方式,比如,0对应智能排序,2对应评价最好,具体每一个id的含义参见在start=0时sortNavs字段。

在GET返回的JSON串中list字段为商家列表,id表示商家的id,作为商家的唯一标识。在返回的JSON串中是没有商家的口味、环境、服务的评分信息以及经纬度的;

因而我们还需要爬取两个商家页面: 1、逐步爬取searchshop API的取商家基本信息列表;

利用Node.js制作爬取大众点评的爬虫(nodejs制作网站)

2、通过爬取的所有商家的id,异步并发爬取评分信息、经纬度;

3、最后将三份数据通过id做聚合,输出成json文件。

二、爬虫实现

Node.js爬虫代码用到如下的第三方模块:

1、superagent,轻量级http请求库,模仿了浏览器登录;

2、cheerio,采用jQuery语法解析HTML元素,跟Python的PyQuery相类似;

3、async,牛逼闪闪的异步流程控制库,Node.js的必学库。

导入依赖库:

声明全局变量,用于存放配置项及中间结果:

判断一个id是否在前面出现过,若object没有该id,则为undefined(注意不是null):

采取回调函数的方式,实现顺序逐步地递归调用爬虫函数:

在调用爬虫函数时,采用async的mapLimit函数实现对并发的控制;采用async的until对并发的协同处理,保证三份数据结果的id一致性(不会因为并发完成时间不一致而丢数据):

其中,parseShop与parseMap分别为解析商家详情页、商家地图页:

将array的每一个商家信息,逐行写入到json文件中:

总结

标签: nodejs制作网站

本文链接地址:https://www.jiuchutong.com/biancheng/370802.html 转载请保留说明!

上一篇:详解Node.js中的事件机制(node.js deno)

下一篇:NodeJs读取JSON文件格式化时的注意事项(nodejs读取json文件,并返回列表)

  • 小规模纳税人本月应交增值税
  • 印花税税源明细表怎么填
  • 金税四期对企业的六点影响
  • 劳务费发票可以抵扣进项税吗
  • 开票资料需要哪些内容
  • 工程项目估算收入要缴税吗
  • 技术证怎么办理
  • 企业承担的法律责任有哪些保险
  • 税务局开收据的流程
  • 公司委托其他公司代缴社保合法吗
  • 代持股 税收
  • 收以前年度租金
  • 工程预缴税款几个点
  • 业务招待费怎么调整应纳税所得额
  • 抄税没成功
  • 自收自支事业单位
  • 境外个人汇入汇款规定
  • 研究开发费用扣除标准
  • 增值税普通发票红冲之后还能查询吗
  • 零申报的企业年末的利润表可以为零吗?
  • 出口布料有退税吗
  • 网络销售平台优势有哪些
  • 发票金额与实际付款金额不一致
  • 增值税发票遗失证明模板
  • 鸿蒙系统桌面文件夹建立
  • 如何修改系统时间为12/24小时制
  • 个人福利需要缴纳个税吗
  • 预收一年的30万怎么算
  • 原始凭证填的基数怎么填
  • 广告公司的材料的作用有哪些
  • wordpress用什么开发的
  • 前端开发csdn
  • 使用php进行mysql数据库编程的基本步骤
  • 停产企业税收申请减免
  • bert multihead
  • php yield 异步
  • Aerial view of Chapel Bridge over the river Reuss in Lucerne, Switzerland (© Neleman Initiative/Gallery Stock)
  • 业务招待费专票可以抵扣增值税吗
  • thinkphp3.2框架
  • 网站禁止了有什么方法打开
  • 电商后台管理系统简介
  • 自然人三方协议支付宝怎么处理
  • 其他资本公积如何转出
  • 电子产品报废清理是否缴纳教育附加税
  • 申报表跟账不一致,如何调整账
  • php网站根目录
  • 航天金税盘发票冲红怎么操作
  • sqlserver远程连接失败
  • 房产租赁增值税率是5%还是9%
  • 开票限额相关规定最新
  • 房产税应纳税额计算例题
  • 增值税期末有留抵税额应该怎么结转
  • 预付款项怎么做分录
  • 资本溢价举例说明
  • 企业工会经费计提比例
  • 物流托运不给发货
  • 11个点增值税发票是多少
  • 银行回单借贷标志贷表示什么
  • 计提的意义
  • mysql的全文索引的用处
  • linux转移文件代码
  • centosuuid
  • 升级bios后无法启动
  • windows10cortana搜索框
  • centos6启动不了
  • u启动开机启动快捷键
  • 浅谈linux的发展方向和应用范围
  • win7系统无法安装ie8
  • win8系统升级win8.1
  • shell脚本while true循环
  • 风格的多样性举例说明
  • unity3d开发之对象池
  • python在windows
  • javascript基础书
  • jquery设置定时器
  • 支付给境外的咨询费需要什么资料
  • 百旺导入领购的新发票
  • 留抵退税退回的款如何做账
  • 陕西省税务局袁小平简介
  • 广西区国家税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设