反爬虫机制解决方案:JS代码在本地生成随机字符串

这是一篇在Python学习中的笔记。
愿我们一同进步。

问题描述

之前的web端一般都没有反爬虫机制,可是现如今遇到了这个问题,就要越过这座大山,征服它。
在学习爬虫的过程中,爬了一下有道字典,结果人家反爬,error。

{“errorCode”:50}

分析和解决

首先看一下“审查元素”,也就是选择“检查”,快捷键:Ctrl + Shift + I
选择 network,找到翻译的网络请求,然后查看 Headers
general
结果发现,在 Request URL 中,这个网址多了一个“_o”,一般采取删除此项,以避开反爬虫机制。

后续

这样的确可以成功运行,但是,事情远没有这么简单。
在查看 Form Data 发现:
在这里插入图片描述
竟然和之前没有反爬虫机制的有道翻译From Data内容不一样,多出了几项,也少了几项。

其中有两项是反爬虫的关键标志:
salt :盐?加密作用,和时间有关,是系统时间转化的时间戳。
sign:用户的签名字符串,由常量、时间戳、用户翻译的字符组成,有特定的方式进行加密,因此每个翻译字符所对应的的sign并不相同。

如果不想通过删除“_o”来解决,就需要通过洞悉他们的反爬虫机制,找到加密的方法,从而应对反爬虫——
在网页源代码中查找一下所有的“JS文件”,找到相关的 后缀为“fanyi.js”的 (很容易就可以找到,蓝色的链接),跳转之后得到了满页的奇奇怪怪的乱码。
将代码复制到代码格式化工具之中,可以格式化出不那么奇怪的代码。
搜索一下其中的“salt”,就可以看到 salt 和 sign 的定义方法,破解加密原理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值