2022.11.17 反爬虫原理学习笔记

2022.11.17
签名验证爬虫:
由客户端生成一些随机值和不可逆的md5加密字符串,并在发起请求的时候将这些值发送给服务器,服务器使用相同的方式对随机值进行计算以及md5加密,如果服务器端得到的MD5值与前端提交的md5值相等,就代表是正常请求,否则返回403

产生方式:
1.直接在url中提交 例如:http://url&key=提交数值1&key2=提交数值2
2.post提交 例如:

datas = {
    'key1': 提交数值1,
    'key2': 提交数值2,
}


破解方法:

1.观察提交的数值,

2.在源代码的头部中涉及到的javascript文件中查找这个关键字,

3.根据对这个关键字进行操作的函数在py代码中进行复现
4.然后将得出s的数值按照方式上传即可

具体案例:

有道翻译 爬虫

1.观察提交的数值,发现翻译的请求是由https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule这个url发起的,这个url下面还带有许许多多的表单参数,其中salt,sign,lts,是动态变化的

2.在源代码中成功的找到了fanyi.min.js这个关键文件,以sign为关键字在里面查找

,找到了关键函数

function (e, t) { var n = e("./jquery-1.7"); e("./utils"); e("./md5"); var r = function (e) { var t = n.md5(navigator.appVersion), r = "" + (new Date).getTime(), i = r + parseInt(10 * Math.random(), 10); return { ts: r, bv: t, salt: i, sign: n.md5("fanyideskweb" + e + i + "Ygy_4c=r#e#4EX^NUGUc5") } }

3.由此可以看出动态变化的函数的由来,将其在py代码中复现

具体代码:

https://blog.csdn.net/m0_56366541/article/details/127909065?spm=1001.2014.3001.5501

4.按照post请求方式请求结果,成功

你可能感兴趣的:(学习,python)