携程酒店评论获取-解密过程

这个东西搞出来有段时间了,一直硬盘吃灰,今天看了一下发现不能用啦,又去网页看了一下 变了一小部分,既然之前的不能用啦,那我就分享出来解密过程。具体分析过程就免了,时间太久时间太久记不起来当时的思路了 现在就看着代码来说一说加密。

  1. 首先获取key,从脱机js算法经过自己完善 js带入酒店id
window.location = {
    href: "http://hotels.ctrip.com/hotel/[id].html?isFull=F#ctm_ref=hod_sr_lst_dl_n_1_6"
}var h = "123";```
伪造一个常量混淆判断的
然后获取一个随机的函数名
        for (var e = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"], o = "CAS", n = 0; n < 16; n++) {
            var a = Math.ceil(51 * Math.random());
            o += e[a]
        }
        return o;
    }

拿到加密密文

function get(){return eval(密文);}```

然后我们就可以动态组合算法
head+body

```function [过程](aa) {
    h = aa;
}
function d() {
    return h;
}```

然后计算出来结果
var key = 结果.split('"')[1];
var a = key.substring(key.length-1,1);
var b = key.substring(1,length-1);
if(a>0){
	b+=(a-1).toString();
}else{
	b+=String.fromCharCode(a.charCodeAt()+1);
	
}
ok
此时b的key就是eleven值。就可以拿着请求评论

最后说明一下此贴不针对携程仅仅作为学术分析讨论,如果你认为这就能爬携程那就天真了


转载于:https://my.oschina.net/KFS/blog/1830565

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Selenium爬取携程酒店评论可以分为以下几个步骤: 1. 安装Selenium和ChromeDriver Selenium是一个自动化测试工具,可以通过编写Python代码来控制浏览器模拟用户行为,ChromeDriver是Selenium控制Chrome浏览器的驱动,需要下载对应版本的ChromeDriver并配置环境变量。 2. 打开携程酒店评论页面 使用Selenium打开携程酒店评论页面,并在页面中输入酒店名称,选择日期等筛选条件,点击搜索按钮,等待页面加载完成。 3. 模拟下滑操作 由于携程酒店评论是动态加载的,需要模拟下滑操作触发JavaScript代码将评论加载出来。可以使用Selenium提供的`execute_script`方法执行JavaScript代码模拟下滑操作。 4. 解析评论内容 使用Selenium获取评论页面的HTML代码,然后使用BeautifulSoup等HTML解析库解析出评论内容,包括评论内容、评分、评论时间等信息。 5. 存储数据 将解析出来的评论数据存储到数据库或者文件中,方便后续的分析和使用。 下面是一个简单的示例代码: ```python from selenium import webdriver from bs4 import BeautifulSoup # 打开Chrome浏览器 driver = webdriver.Chrome() # 打开携程酒店评论页面 hotel_name = "xxx" # 酒店名称 start_date = "xxxx-xx-xx" # 入住日期 end_date = "xxxx-xx-xx" # 离店日期 url = f"https://hotels.ctrip.com/hotel/{hotel_name}/k1{start_date}-k2{end_date}/" driver.get(url) # 等待页面加载完成 driver.implicitly_wait(10) # 模拟下滑操作 for i in range(5): driver.execute_script("window.scrollBy(0, 500)") # 解析评论内容 html = driver.page_source soup = BeautifulSoup(html, "html.parser") comments = soup.find_all("div", {"class": "J_commentDetail"}) for comment in comments: # 解析评论内容,包括评论内容、评分、评论时间等信息 content = comment.find("div", {"class": "detail_txt"}).text.strip() score = comment.find("span", {"class": "score"}).text.strip() date = comment.find("span", {"class": "time"}).text.strip() # 存储数据 # TODO # 关闭浏览器 driver.quit() ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值