Python写个爬虫碰到反爬了,怎么办那就动手破坏它!

搞定javascript加密

js加密最简单的是采用md5进行的,我们通过http://fanyi.youdao.com/来演示本篇博客内容


接下来你要注意的是这个请求是由哪个Js文件发起的

文件获取到为 fanyi.min.js,继续追踪,鼠标在这个文件名上面停留一下就可以获取到基本信息,我们点击跟请求相关的那个方法对应的文件链接,跳转到方法内部

这个地方有个操作细节,你需要学会,点击文件之后,跳转到的JS文件是压缩之后的,进行一下格式化操作

拿到源码

参数分析

i 表示 带翻译的词语

from 设置为 AUTO

to 设置为 AUTO

smartresult 默认值 dict

client 翻译的客户端:默认应该为 fanyideskweb

salt 第一个变量 需要查阅生成规则

sign 第二个变量 需要查阅生成规则

ts

bv

其余的参数保持默认即可

重点参数

salt

sign

ts

bv

代码的复查当中找到参数来源

OK,我们已经获取到参数的内容了

ts = r 表示当前的时间戳

salt 用r去加上一个随机数

sign 为 一个特殊的md5,中间重点注意 e 其实就是你要翻译的词语

navigator.appVersion 这个比较容易,在开发者工具中运行一下就可以得到了

5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36

代码尝试

准备好这么多材料之后,剩下的就是编码了,我们开始吧,这个地方依据的是JS的源码,然后转换成Python即可,没有特别难的地方

参数的生成

参数的拼接与header的准备

发起请求

结果展示

{"translateResult":[[{"tgt":"早....","src":"morning"}]],"errorCode":0,"type":"en2zh-CHS","smartResult":{"entries":["","n. 早晨;黎明;初期\r\n"],"type":1}}

得到数据之后就表示我们的目标完成了~

本篇博客的反爬内容搞定~

猜你喜欢

转载自blog.csdn.net/qq_40925239/article/details/89453291