位置: 编程技术 - 正文

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

  • 税务局退回个税手续费会计分录
  • 附加税填表说明
  • 经营所得和企业所得
  • 增值税申报错误已经缴税了怎么办
  • 所得税是什么意思
  • 为什么社保账户有钱但是卡里没钱
  • 一般纳税人企业所得税多久申报一次
  • 增值税加附加税加企业所得税加印花税是多少个税点
  • 境外非居民企业所得税
  • 增值税包括哪些税种
  • 持有待售资产固定资产 要计提折旧吗
  • 金税三期个人所得税税率
  • 支付股权投资的会计科目
  • 进项税暂估收入的税务处理
  • 人工费增值税的税率是多少?
  • 什么叫未完税
  • 涉农贷款损失
  • 新个税劳务报酬怎么算
  • 预付账款需要发票吗
  • 理财产品取得收益要交税吗
  • 存货跌价准备转销账务处理
  • 税控设备抵减如何填写报表
  • 外贸出口支付方式
  • 原材料入库如何分类
  • 生产测试是指什么
  • 资产负债表中的预付款项目应根据什么填列
  • mac怎么保存网页上的音频
  • 企业存款利息收入要交哪些税
  • php unset()
  • 哪些企业需进行预算管理
  • 在建工程进项税额
  • 深度优先python
  • php输出姓名
  • 房地产计提税金的会计分录
  • 出现巨石
  • 专项储备怎么理解
  • 直接材料成本差异账户在平时登记贷方登记
  • php处理并发有哪些技术
  • 进项税额资产还是负债
  • 定期定额个体户超定额怎样申报
  • vue中的provide/inject
  • 人工智能机器人
  • 结存成本怎么计算先进先出法
  • 新申报是什么
  • 进项税额转出都需要开具红字发票吗
  • ipv6的设置
  • 退物业费如何记帐
  • 平行结转法什么意思
  • 旅游业差额开票的票据可以累计一季度吗
  • 赠送电影票文案
  • 服务业收入的会计分录
  • 车票抵扣进项税怎么计算
  • 商业承兑汇票到期不兑付怎么办
  • 怎么设置win7密码
  • win7网络不好怎么办
  • window所有程序在哪里
  • 比较常见的成语有哪些
  • 清除coms密码
  • windows7计算机管理拒绝访问
  • 系统恢复会怎么样
  • linux系统的
  • 无线网络连接不上显示无ip分配
  • 方块滚动代码怎么写
  • javascript继承原理
  • 深入剖析典型案例
  • nodejs制作网站
  • kui血条插件设置
  • rgb颜色相加
  • 非法文件名是什么
  • JavaScript电子时钟倒计时第二款
  • 前端实现图片编辑
  • javascript教程
  • jquery教程实例
  • java script教程
  • javascript面向对象精要pdf下载
  • jQuery+ajax+asp.net获取Json值的方法
  • 税务机关的情况说明
  • 苏州公积金密码怎么改
  • csc联合培养博士资助标准
  • 增值税发票如何红冲
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设