位置: 编程技术 - 正文

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

  • 什么是价税分离的原因
  • 税收 特征
  • 电脑填制记账凭证实训心得
  • 2021成品油增值税计算
  • 缴纳所得税费用的会计分录
  • 理财产品 会计分录
  • 工程改造合同印花税
  • 中药饮片的税率现在是多少
  • 商贸公司进货的会计分录
  • 免抵退税的范围
  • 发票校验码后六位在哪个位置图片
  • 工资必须通过银行代发吗
  • 房租摊销表怎么做
  • 筹建期的餐饮费会计分录
  • 车间工人工资计入
  • mac只能读不能写
  • 应交增值税的会计科目
  • 小宝宝耸肩膀缩脖子
  • 笔记本电脑应该关机还是睡眠
  • PHP:oci_set_edition()的用法_Oracle函数
  • php的编辑工具有哪些
  • 营业外收入账户贷方登记企业发生的各项营业外收入
  • 未取得发票入账违反什么规定
  • 舍夫沙万的蓝色是什么意思
  • 尿急尿频尿不尽吃什么药效果好
  • 固定资产入账流程图
  • 做电脑配件的公司
  • 辅助生产成本的分配
  • phpunicode
  • 防止盗链的php代码
  • php-xml
  • 非合理损耗计入入账成本吗
  • php数组实现原理
  • 融资购入的固定资产如何记账
  • php模板引擎原理
  • 毛利率为负也可以投资吗
  • php正则表达式验证网址
  • vue sha256加密
  • 不良品扣款应入哪个科目
  • 帝国cms怎么增加子栏目
  • 差额征税的扣除额是填什么钱
  • PostgreSQL更新表时时间戳不会自动更新的解决方法
  • 同一控制下企业合并发生的审计费用计入
  • 什么是企业贷款余额
  • 汽车维修企业怎么认定小微企业
  • Ubuntu上安装jdk
  • 基金管理公司是什么意思
  • 利润分配的账务处理视频
  • 小微企业全年营业额不能超过多少
  • 金税盘服务费如何抵扣
  • 补报印花税税需要提供什么材料
  • 贴现的利息通过什么会计科目核算
  • 固定资产抵账的账务处理
  • 对公账户给私人账户转账,几天到账
  • 其他应付款的核算范围包括应付短期租赁
  • mysql为什么很受大家青睐
  • centos的命令行界面输入
  • win8系统怎么创建局域网
  • win7系统怎么设置微信多开
  • win8.1怎么设置自动关机
  • windows10如何设置windows7开始菜单
  • win7开机提示由于启动计算机时出现页面文件
  • win7的记事本在哪里打开
  • win7怎么禁止程序自启动
  • 通过扣缴义务人申报和综合所得年度自行申报
  • 常用的加锁方式
  • A Type-Safe Event System for Unity3D
  • jquery教程chm
  • linux基本命令的使用方法
  • (cocs2dx)二、 利用Eclipse编译apk应用
  • Node.js中的事件循环是什么意思
  • 什么绑定什么服务
  • android studio 无法解析 aar
  • imagelearning
  • javascript如何禁用
  • jquery 触发点击
  • 公司地址变更后社保要改吗
  • 如何做好协税工作
  • 如何查询税控盘口令和密码
  • 九江税务总局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设