请求延迟产生的__cfduid参数和cf_clearance参数解决思路
网址:
https://www.ixian.cn/thread-1703333-1-1.html
抓包之后,数据逻辑分析如下:
数据在这个请求当中,需要的参数值:jschl_answer,jschl_vc,pass,r,
其中jschl_vc,pass,r,三个参数在第一个503请求中有返回,直接拿来用即可。
然后剩余一个参数:jschl_answer
可以看到这个a的值即为这个参数的值。
将这个a的值拿出来使用,代码如下:
pattern = re.compile('setTimeout\(function\(\)\{(.*?)f.action \+= location.hash;', re.S) code = pattern.findall(resp.text) code = re.sub('\s+(t = document.*?);\s+;', '', code[0], flags=re.S) code = re.sub('a.value', 'value', code) code = re.sub('t.length', '12', code) code = 'function test(){' + code.strip() + ';return value;}' s1 = execjs.compile(code) t = s1.call('test') 然后观察cookie的变化。
数据所在页的cookie,关键参数是__cfduid, 在第一次503的get请求中有产生,我们可以直接获取,然后携带参数和cookie进行请求即可。
注意:
当你请求的时候发现还是报503, 这个时候需要在参数生成之后,休息一下下,然后就可以拿回正确的值了。