分析网址--------------------------------提示 抓取对方信息是通过对方允许的 请不要违法操作 抓取其他个人有关信息
网址先发送了一个OPTIONS请求
Request URL: Request Method: OPTIONSStatus Code: 200 OKRemote Address: 47.90.111.000Referrer Policy: no-referrer-when-downgrade
再OPTIONS请求以后又发送了一个post请求
Request URL: http://Request Method: POSTStatus Code: 200 OKRemote Address: 47.90.111.91:80Referrer Policy: no-referrer-when-downgrade
因为post返回的是一个json数据 这种网址最容易进行抓取了
因为返回的json数据里面我们需要的信息几乎都在里面了
当时我自己用postman先进行模拟请求 同样的参数 同样的请求信息 怎么都获取不到对方的数据 post请求一直失败
请求参数 如下 某些参数我是删过的 避免对方信息泄露
countryId: 1page: 2pageSize: 20cityId: 194order: -1000language: cndeviceType: webdeviceId: Mozilla_NetscapeapiVersion: 2.0.1systemVersion: 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36signToken: 4de4c34c6b79045936c4f2c1863c893a
解决办法如下
from urllib import request, parseimport urllibimport gzip
url = 'http://'request_header = {'Accept': 'application/json, text/plain, */*','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded','Host': '','Origin': 'h,'Referer': f'http://ty','User-Agent': random.choice(deal_with_info.header_info())}# 利用urllib解决跨域问题req = request.Request(url) # 响应for key in request_header:req.add_header(key, request_header[key])response = request.urlopen(req, data=request_data)ret = gzip.decompress(response.read())
自己可以写一个脚本尝试一下 如果可以获取到则就成功了
请求参数 MD5加密
signToken: 4de4c34c6b79045936c4f2c1863c893a
signToken这个参数是前端js进行加密的
我在对方js里面找到了这个加密的算法
就是这种 自己一个一个里面去找一下
找到后进行分析后则明白对方是如何进行加密的了
加密前端有加密 后台肯定有对应的验证
找到规则就很简单了
有疑问可以留言 可以一起研究