位置: 编程技术 - 正文

利用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文件,并返回列表)

  • 弥补亏损的应纳税额 例子
  • 个人所得税汇算清缴截止日期
  • 应交税费借方和贷方各表示什么
  • 支付利息现金流量表中什么增加
  • 小规模纳税人自动升为一般纳税人条件
  • 税控盘如何统计开票金额
  • 技术服务费入账
  • 月末调整银行外币汇率会计分录
  • 开户以后不用要钱吗
  • 企业所得税税率
  • 住宿费电子普票可以抵扣进项税额
  • 房产开发后自用需要交土地增值税吗
  • 运输设备折旧费用科目
  • 营改增行业的销售额
  • 回购库存股所有者权益会发生变化吗
  • 异地经营需要办什么税务手续?
  • 公司租用土地
  • 契税与印花税能抵扣吗
  • 营改增前的工程款现在怎么开票
  • 注销一定要去营业厅吗
  • 支付董事会成员津贴计入什么科目
  • 三证合一之后的税务登记
  • 预付的货款可以计入应付账款吗
  • 餐查账征收企业所得税会计分录?
  • 运输途中发生货物丢失
  • 回收站右键菜单修改
  • 预付款退还的法律规定
  • 支付店面租金为什么是管理费用
  • win10桌面2怎么使用
  • 入账成本包括增值税税额吗
  • 房产契税什么时间缴纳
  • 纳税人逾期申报
  • zhp.exe是什么进程
  • PHP:proc_close()的用法_命令行函数
  • laravel如何使用前端的纯静态页
  • php image
  • 废旧物资经营单位增值税税率
  • 原材料计入什么凭证
  • 学会这两种方式英语
  • react modal
  • 为什么其他权益工具投资不计提减值准备
  • 退回税款如何做账
  • 银行贷款入账需要什么
  • 上个月没有开票需要清卡吗
  • 个人工程款收入算是工资流水吗
  • 现金管理的四个方面
  • 为什么有些网站会自动复制
  • 软件服务费可以全额抵扣吗?
  • 酒店成本控制有哪些
  • mysql集群配置
  • 期权费的合理范围计算
  • 退物业费如何记帐
  • 已认证抵扣的发票如何红字信息表
  • 押金 做账
  • 3%减按1%征收增值税政策2022年
  • 其他业务收入的附加税的会计分录
  • 自产的产品用于生产缴纳增值税
  • 购买不良债权如何追偿
  • 坏账准备的会计分录例题
  • 旅行社开的发票如何记账?
  • 普通发票的金额
  • 红字发票填开说明是?
  • bios屏蔽nvme
  • win10重装系统后无线网卡不能用了
  • macbookzen
  • vmware workstation15安装ubuntu
  • wincomp.exe - wincomp进程是什么意思
  • 高县土火锅历史介绍
  • win7系统莫名其妙占用个D盘
  • windows 10预览版
  • 怎么恢复手机桌面时间和日期
  • 5.2光源
  • node.js中的http.response.getHeader方法使用说明
  • unity3d跨平台
  • jQuery+ajax简单实现文件上传的方法
  • 代建工程如何缴纳增值税
  • 地税税务稽查管理办法
  • 土地交易的印花税
  • 个人经营所得税怎么做账务处理
  • 江西省地税局官方网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设