位置: 编程技术 - 正文

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

  • 所得税结转本年利润
  • 应补退税额较少是什么意思
  • 出口报关单上面的运费怎么填
  • 工商年报纳税总额包括哪些税
  • 带薪年假是入职就有还是要等一年以后
  • 税费返还计入什么费用
  • 固定资产新规则
  • 境外所得抵免限额小于实际缴纳
  • 小规模建筑业如何做账
  • 一般存款账户的主要用途
  • 通信服务费包括哪些
  • 一般纳税人可以转小规模吗
  • 单位预付卡
  • 一般纳税人 开以前的税率
  • 财税2010121号文件解读
  • 跨地区经营产生的GDP
  • 公司租赁办公场地用缴纳房产税吗
  • 利息支出企业所得税税前扣除标准
  • 汽车进项税额
  • 表格怎样打印在一张a4纸上
  • 进项税转出补交的增值税和附加税可以税前扣除吗
  • 税盘的服务费
  • 消防费用怎么做分录
  • thinkphp5.0自定义路由
  • 运行项目报错Couldn't import Django
  • linux的安装和使用
  • 代金券消费怎么做分录
  • 电商快递费怎么做账
  • Netlib.exe - Netlib是什么进程 有什么用
  • 原材料科目是什么意思
  • mcu version
  • 大沼泽地国家公园位于哪个城市
  • vue设置图片
  • elementui级联选择器清空方法
  • web前端入门教程
  • 建材公司成本率一般多少
  • 税收分类编码不存在什么意思
  • 怎样申请土地增值税补贴
  • 转账支票只能去开户行买吗?
  • python中的元组
  • python os.path.join()函数的使用
  • 深入理解jvm第三版pdf百度云
  • 销售自己使用过的物品
  • 销售费用福利费和管理费用福利费
  • 工业企业增值税税负多少合理
  • 上市公司收购其它公司是好是坏
  • 资产负债表坏账准备计入哪里科目
  • 税收类型增值税有哪些
  • sqlserver游标的使用
  • 税法对工资薪金的要求
  • 建筑公司算不算企业
  • 营业成本和生产费用一样吗
  • 职工食堂的会计处理
  • 查账征收与核定征收在哪里看
  • 预付账款科目的余额如果在借方,则在资产负债表上
  • 个人独资企业个体工商户的区别
  • 工伤七至十级有伤残津贴吗
  • 哪些发票不能开专票
  • 融资租赁的固定资产视为企业自有固定资产管理
  • 损益表格式 最新
  • 车属于固定资产嘛
  • ie标签页
  • mac备忘录怎么使用
  • centos root被锁定如何取消
  • windows2008
  • mainwindow是什么程序
  • windows中的hosts文件
  • 微软商城会员
  • ubuntu系统启动流程
  • 基于stm32的100个毕业设计
  • cocos2dx官方教程
  • 简述JavaScript中全局变量与局部变量的作用域
  • python怎么用
  • [置顶]bilinovel
  • 深圳地方税务局电话
  • 福建省个人所得税税率表查询
  • 慧算账财务公司简介
  • 河北华盛税务师事务所
  • 宁波国税局几点上班几点下班
  • 请领导审核怎么说
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设