位置: 编程技术 - 正文

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

  • 什么是土地使用权终结
  • 会计运费怎么算的
  • 移动平均加权法是什么意思
  • 网银转账往来款
  • 实收资本认缴怎么缴纳印花税
  • 汽车销售服务费增值税税率
  • 营业税金及附加包括增值税吗
  • 公司出售房产的税费
  • 销售收入打折后怎么算
  • 网上报税费用如何抵扣账务怎么处理?
  • 支出没有发票怎么做账
  • 小规模建筑业有增值税吗
  • 金税盘减免分录
  • 物业管理公司如何纳税
  • 增值税纳税申报表电子版在哪下载
  • 商业承兑汇票风险
  • 检查所得税发现纳税差异如何调账?
  • 进项税转出如何做分录
  • 预收购货款的会计分录
  • 事业单位收到开办费的会计分录
  • 维保合同交印花税吗怎么交
  • php数组函数大全
  • 金融资产减值损失计入什么科目
  • 股东借款给公司会计分录
  • php批量修改
  • 一只正在树上吃的苹果
  • 行走在奥卡万戈河中的大象,博茨瓦纳,非洲南部 (© Markus Pavlowsky/Getty Images)
  • php注册功能的实现
  • 什么是工程施工的总纲领
  • 三万个字多久写完
  • 纳汉双语
  • 已知税额和不含税额求税率
  • 金税盘显示242104
  • 怎么把html做成app
  • 完美怎么用
  • 套期工具会计核算
  • extract php函数
  • react避免子组件更新
  • 计提工资扣社保的凭证
  • 交所得税怎么记账
  • java数组合并变字符串
  • 专票作废扣税吗
  • 支付宝商户服务电话
  • 销售费用福利费和管理费用福利费
  • 企业转钱给个人
  • 烟叶税计算时价格怎么算
  • 收到货款未开票怎么入账
  • 什么情况填an
  • 内部审计和外部审计可以相互接触对方的
  • 息税前利润与盈亏平衡点
  • 工程设备公司经营范围
  • 支票存根联丢失可以用回单代替么
  • 办公室装修费计入长期待摊费用
  • 国库单一账户体系包括哪些账户
  • 详解Mysql主从同步配置实战
  • win2003控制面板在哪里打开
  • 怎么判断win7还是win10
  • 电脑系统信息怎么关闭
  • win7偶尔黑屏
  • win10系统中怎么打开IE浏览器
  • u深度如何装win7系统
  • win7网上邻居怎么共享文件数据
  • Linux系统如何创建目录
  • js继承的关键字
  • 推荐表情图片
  • python回归结果输出
  • react基础入门
  • vrbrations
  • vue插件使用
  • js编程中要使用到函数,分为哪几步?
  • jquery实现移动端
  • 简单谈谈你对中国国防建设的认识
  • python 元类的作用
  • 嵌入式安卓开发入门
  • 完税证明和发票的关系
  • 车辆购置税怎样做账
  • 投资联营的房产税纳税人是谁
  • 驻马店燃气投诉电话号码
  • 小规模纳税人30万免税政策
  • 对外销售产品
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设