位置: 编程技术 - 正文

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

  • 出口税率和出口关税税率一样吗
  • 商品房销售税率10%执行时间
  • 消费税的税目有多少
  • 门诊医保报销发票
  • 国际快递货运
  • 定期定额征收如何办理税费认定
  • 工资走公账和私账哪个好
  • 金税盘怎么向分行汇款
  • 城建税少申报了怎样罚款
  • 移动话费可以开企业发票吗
  • 污水处理企业如何捕捉碳中和减少了的碳足迹
  • 公积金贷款购房后可以提取公积金吗
  • 货物运输企业的经营方式
  • 出口退税的办理影响出口吗
  • 税控技术服务费怎么做账
  • 收到去年所得税退款直接记入营业外收入吗
  • 增值税免税收入进项税额转出
  • 外币报表未分配利润折算
  • 收到投资款不做资本可以做什么?
  • 房屋盘盈入账须要交税吗
  • 未开票收入可以不开票吗
  • windows11怎么打开设置
  • 超标的业务招待费属于什么差异
  • 公司已经改名原来的公章还有效吗
  • windows 平台
  • 临时工的工资需要缴纳工会经费吗
  • 以前年度企业所得税分录
  • 工业企业的费用
  • 销售发票重复开,库存商品怎么处理?
  • 哪些房地产项目是国企
  • 商业承兑汇票贴现
  • php sid
  • 材料成本差异属于流动资产吗
  • php session_id
  • 富文本编辑器和markdown编辑器的区别
  • php23种设计模式
  • php 计算
  • 得物的成本结构是什么
  • input输入改变边框颜色
  • web2的核心理念
  • pytorch教程
  • php 电子签名
  • php接口开发详解
  • thinkphp6框架源码完整版下载
  • java中通配符作用
  • 微信转账要如何退回去
  • 小规模纳税人0申报汇算清缴
  • 帝国cms8.0
  • ES + Redis + MySQL,这个高可用架构设计太顶了!
  • 工程咨询属于什么服务业
  • 以房租入股公司怎么交税
  • 公司贷款 利息
  • 社保稳岗补贴怎么查询
  • 应付账款的主要舞弊形式
  • 国外客户怎么付款给我们公司
  • 企业职工福利费使用范围和标准
  • 发票未到货已入库会计分录 原材料
  • 企业发生坏账损失时,在当期确认坏账损失
  • 亏损合同预计负债
  • 社保税款所属期申报错了要紧吗?
  • 自然人独资公司税收政策
  • sql转换
  • 电脑bios找不到硬盘怎么办
  • win8系统怎么查看隐藏文件
  • mac app store打开一片空白
  • mac网易云怎么换皮肤
  • u盘安装centos7安装详细图解
  • os x 10.10.5
  • shadowbar.exe - shadowbar是什么进程 有何作用
  • 怎么清空windows8电脑里全部东西
  • Linux分区详解
  • python import同一目录的其他文件
  • Formatting Long Lines 格式化多行字符的shell脚本
  • 应用web标准实例是什么
  • iframe transparent透明背景方法
  • 在一个android创建一个按钮多选对话框
  • js的异步解决方案有哪些
  • 残疾人个税减免6000元
  • 扬州退契税政策
  • 买车购置税去哪里交钱
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设