携程酒店、景点、评论数据采集,testab动态js加密参数处理不补js环境不纯算

news2024/9/27 7:40:37

携程平台的酒店、景点、评价数据还是比较有意义的,可用作数据分析研究,目前均可采集。酒店价格需要登录采集,其他店名、地址、经纬度、评分、评价数、特色标签等都可以直接采集。

携程酒店数据示例:

酒店id:536424

酒店名:锦居酒店(成都金融城银泰中心in99店)

星级:4钻

酒店标签:['免费停车', '自助早餐', '棋牌室', '会议厅', '无烟楼层', '干衣机', '下午茶', '免费客房WiFi', '管家服务', '健身室']

与携程:携程战略合作酒店/供应商,提供高质量服务及实惠价格。

评价数:600

封面图地址:网址屏蔽此处不展示

总分描述:棒

总分:4.8

环境分:4.8

卫生分:4.8

设施分:4.8

服务分:4.7

地址:锦晖东街208号

街道商圈:金融城/双子塔附近地区

距离市区:距市中心直线8公里

经度:104.072935

纬度:30.586253

城市:成都

城市id:28

这里是批量采集全部酒店的基础信息,对于酒店的详情,乃至具体评价,需要针对每个酒店单独采集。同样的,携程的景点及其评论采集同理。

这里提一下采集的流程,因为携程采集的难点testab参数还是比较有通用性意义,不少平台都用到了这类js加密。

携程的各类数据请求都是标准的前后端分离,后端请求都是标准的post请求然后返回json,这类请求稍微学一下编程的人都能采集,但是有testab这个大杀器就拦住了绝大多数人。

携程酒店基础信息的接口是HotelSearch,仔细看这个接口会发现,除了常用的payload请求参数(控制请求页码、单页数量、城市、排序方式、入驻日期等,顺便单页数量实测最大上限返回值是100,但会漏数据,所以还是默认用10个就行),还带了一个testab参数。

不带这个testab参数请求,服务器是不会返有效数据的,而这个testab的参数是动态的,并且在浏览器中使用了一次就会失效。

跟踪网页请求发现这个testab参数是由平台的一个js文件动态生成的,所以核心就是得到这个js计算的testab参数。

目前网上通用的方法是两种:

第一种是补全js环境法,通过把这个js下载下来,然后在自己本地运行js得到参数结果。

第二种是纯算法,学习这个js文件的代码,研究他testab的算法,自己用任意语言写一个算法出来。

这两种方法都需要对js比较熟悉,能读懂js代码,要很有耐心打断点一路研究js或者补环境。对我而言js语法看着就丑陋非常不直观,一直学不进去也没啥需求,最早用C语言做类MFC和Java的J2EE,现在只用Python非常友好。所以想找一种既不补js环境,也不研读js代码的方法。

思路很明确,既然不想补本地js环境,那直接用浏览器环境不就可以了,简单说就是在浏览器运行这个js文件,生成了testab参数后输出给我就可以了,同时要打断js的后续执行不让发起接口请求,因为生成的testab在浏览器里请求后就会失效。

还是需要修改一点js,不过不多,忍着不适微调几个地方就可以了,具体流程方法有偿咨询,一法通万法通不少网站的动态js加密参数都可以这样处理。

拿到testab后,携程数据采集易如反掌。顺便提一句,请求时候的排序不要用默认排序,会漏返数据,不知道是如高德那样风控故意漏返,还是单纯的接口不准确。

接数据采集、数据治理、业务流程自动化、计算机问题处理服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1975226.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免费【2024】springboot 大学生在线论坛系统的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

常用配置文件 .ini、.config、 json、xml

ini Initialization INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键值对(key-val)构成,常用于微软Windows操作系统中。 这种配置文件的文件扩展名多为INI 》》INI文件不支持数据类型,所有的键值对都是字符串类型…

[SQLSERVER][SQL]数据库备份任务异常

SQL备份异常出现如下错误: 执行查询“BACKUP DATABASE [ReportServerTempDB] TO DISK N...”失败, 执行查询“BACKUP DATABASE [ReportServerTempDB] TO DISK N...”失败, 错误如下:“无法打开备份设备 E:\\sqldatabackup19\\Report_ba…

nose2,一个无敌的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个无敌的 Python 库 - nose2。 Github地址:https://github.com/nose-devs/nose2 在软件开发过程中,自动化测试是保证代码质量的重要环节。Python 提供…

Python(模块)

模块编写完成就可以被其他模块进行调用并使用被调用模块的功能。 import导入方式的语法结构: import模块名称【as别名】 from……import导入方式的语法结构: from模块名称,import变量/函数/类/*(*是通配符) impor…

非线性磁链观测器

前面已经介绍了龙伯格观测器、滑膜观测器:龙伯格观测器(又称状态观测器)、滑膜观测器-CSDN博客 滑膜观测器和龙伯格观测器都是没法实现电机的超低速运转、0速启动、超高速的正反方向的运行。龙伯格观测器是可以实现这些功能,但是…

Resolving Maven dependencies

Maven是一种项目管理和构建工具,通常用于Java项目。这个过程包括下载项目所需的所有外部库和插件,并将它们添加到项目的构建路径中。具体来说,它正在处理名为“AAS_byBasyx”的项目或模块的依赖项。这种任务通常在你打开一个新的Maven项目或更…

基于web的购物网站的设计与实现(系统源码+lw+部署文档+讲解等)

文字目录: 目录 详细视频演示 系统实现界面 1.1系统开发环境以及运行环境 1.1.1系统开发环境 1.1.2系统运行环境 1.2系统功能实现 1.3管理员模块实现 2 技术介绍 2.1 thinkphp5介绍 2.2 MySQL数据库 2.3 B/S结构 4.1系统结构设计 4.2系统功能结构设计…

​JavaWeb入门——Servlet(二)

目录 HttpServletRequest 简介 常见API HttpServletResponse 简介 常见API 请求转发和响应重定向 概述 请求转发 响应重定向 cookie&session 会话 会话跟踪方案: 会话跟踪方案对比: 1、Cookie 2、Session(底层基于Cookie…

RocketMQ5.0消费者

RocketMQ 5.0 提供了三种主要的消费者类型:PushConsumer、SimpleConsumer 和 PullConsumer。每种类型的消费者都有其特定的使用场景和特点。以下是对这三种消费者的概念及其区别的详细阐述: PushConsumer 概念: PushConsumer 是一种主动推送…

Python time模块5大隐藏特性

特性一:结构化时间——struct_time 简介: struct_time是time模块中的一个数据类型,用于存储一个时间的各个组成部分(年、月、日、时、分、秒等)。它常用于解析和格式化时间。 代码示例: import time # …

GA4(Google Analytics 4 )升级指南丨出海笔记

Google Analytics 4 是与之前的Universal Analytics/GA3完全不同的全新版本,2023下半年(7月后)会全面替换UA。 本篇指南将会展示如何安装和使用 Google Analytics 4 (GA4), 以便大家更好的迁移并使用新平台。相比GA3, GA4绝对是好东西,这次的内容比较硬核…

Linux基于centOS7【内存与OS的随谈】,进程初学【PCB】【fork】【进程排队】

冯诺依曼体系结构——存储器 存储器主要指的是内存,它有个特点就是掉电易失 磁盘等其它输入和输出设备 为什么要在计算机体系结构中要存在内存 我们知道,CPU的处理速度很快很快,但输入设备,以及输出设备,是相对很慢的…

C#对Sqllite操作

前言 数据库的操作也是程序设计中的家常便饭了,关系型数据库中Sqlite3是非常轻量级别的,所以这个数据在小型应用程序的设计中占用很高的比重。当然我这里描述的是1.0版本,也是最原始的方案,大型应用开发中一般选择EF进行桥接&…

信息学奥赛初赛天天练-54-CSP-J2019阅读程序3-二叉树、满二叉树、单侧二叉树、二分查找、递归、等差数列求和

PDF文档公众号回复关键字:20240803 2019 CSP-J 阅读程序3 1阅读程序(程序输入不超过数组或字符串定义的范围&#xff1b;判断题正确填 √&#xff0c;错误填 。除特殊说明外&#xff0c;判断题 1.5 分&#xff0c;选择题 3 分&#xff0c;共计 40 分) 01 #include <iostre…

idea项目创建提交到gitee gitee创建仓库 gitee删除仓库(全网最新最详细)

一、gitee创建仓库 1.如下图 2.创建好后如下图 3.打开idea创建好项目 3.1点击终端 3.2 从gitee页面复制命令进行运行 具体步骤如下图&#xff1a; 在步骤5时可能会提醒你远程仓库没有main分支&#xff0c;这个时候需要执行下图中的命令4创建一个远程main分支 结果运行如下图…

GATK ReferenceDataSource接口介绍

在 GATK(Genome Analysis Toolkit)库中,ReferenceDataSource 接口是一个重要的接口,用于表示与参考基因组相关的数据源。它提供了一种标准化的方式来访问和操作参考基因组的不同来源的数据。ReferenceMemorySource 类和ReferenceFileSource 类是ReferenceDataSource接口的实…

给本地设备搭建一个云端语音助手

概述 本语音助手实现了从关键词唤醒 (KWS) 到语音识别 (ASR) 再到自然语言理解 (NLU) 的完整流程。该系统可以通过监听用户的音频输入,检测指定的关键词,并将用户的语音转换为文本,最后与预设的命令进行匹配,执行相应的操作(具体实现请参考main.py),为你的设备配置远程…

ASPCMS

1.后台修改配置文件拿Shell 步骤一&#xff1a;访问以下地址为ASPCMS...并登陆到后台&#xff08;这里注意在搭建站点的时候注意权限问题&#xff09; #网站后台 http://192.168.4.139/admin_aspcms/login.asp //全功能版本 #账户密码 username:admin password:123456 步骤二…

API网关理解

项目背景介绍&#xff1a; 首先介绍一下项目背景&#xff0c;这个项目是API开发平台&#xff0c;需要完成的接口的功能是&#xff1a;统计谁调用了这个接口&#xff0c;并且将这个接口的调用次数1&#xff0c;剩余次数-1。 首先看到这个需求第一反应&#xff1a; 得先建个表…