参考评论大佬的公众号文章,了解到原来是ja3指纹检测,确实是没想到,get了新知识点
一、前言
这题其实看了半天没发现到底检测了什么东西,死活没法获取真实的响应数据,直到尝试了一个半作弊方式,虽然最后还是没搞明白检测远离,但好歹能得出结果了不是,这里就分享下这个间接解决问题法,如果有大佬看到了希望指点下迷津,这题到底怎么检测的…
二、请求方法
2.1、在线测试
这个方法主要是使用了Json在线解析格式化工具网站的http模拟请求工具,跟自己模拟请求的区别是,这里是网站帮你请求,也没输入什么特别的请求头,很顺利的拿到了响应结果,这也说明这题检测的肯定不是请求头内容。
2.2、代码实现
观察一下上面网站请求的构造,用curl转换一下,得到模拟请求代码
url = "http://www.jsons.cn/httpurl/"
data = {
"txt_url": "https://match.yuanrenxue.com/api/match/19?page=1",
"txt_httptype": "GET",
"txt_code": "",
"txt_httpver": "0",
"txt_outtime": "15",
"txt_contype": "text/html",
"txt_host": "",
"txt_useragent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
"txt_setuseragent": "yuanrenxue.project",
"txt_referer": "",
"txt_dlip": "",
"txt_header": "",
"txt_postdata": "",
"txt_cookie": ""
}
res = client.post(url, data=data).text
da=re.findall('placeholder="此处为请求得到的完整内容">(.*?)</textarea>',res)[0]
print(da)
返回结果类似下面这样:
{"status": "1", "state": "success", "data": [{"value": 7396}, {"value": 5018}, {"value": 9546}, {"value": 4476}, {"value": 5297}, {"value": 880}, {"value": 4644}, {"value": 5918}, {"value": 3853}, {"value": 1572}]}
三、写在最后
哎,即使是用上面这种第三方网站模拟请求,依然拿不到最后两页的数据,不知道为什么,是我太菜了。