爬虫 跨域请求 获取json数据 解决参数加密

分析网址--------------------------------提示 抓取对方信息是通过对方允许的 请不要违法操作 抓取其他个人有关信息
网址先发送了一个OPTIONS请求

Request URL: http://xxxxxxxx.com
Request Method: OPTIONS
Status Code: 200 OK
Remote Address: 47.90.111.000
Referrer Policy: no-referrer-when-downgrade

再OPTIONS请求以后又发送了一个post请求

Request URL: http://
Request Method: POST
Status Code: 200 OK
Remote Address: 47.90.111.91:80
Referrer Policy: no-referrer-when-downgrade

因为post返回的是一个json数据 这种网址最容易进行抓取了
因为返回的json数据里面我们需要的信息几乎都在里面了

当时我自己用postman先进行模拟请求 同样的参数 同样的请求信息 怎么都获取不到对方的数据 post请求一直失败

请求参数 如下 某些参数我是删过的 避免对方信息泄露

countryId: 1
page: 2
pageSize: 20
cityId: 194
order: -1000
language: cn
deviceType: web
deviceId: Mozilla_Netscape
apiVersion: 2.0.1
systemVersion: 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
signToken: 4de4c34c6b79045936c4f2c1863c893a

解决办法如下

from urllib import request, parse
import urllib
import 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里面找到了这个加密的算法
在这里插入图片描述
就是这种 自己一个一个里面去找一下

找到后进行分析后则明白对方是如何进行加密的了
加密前端有加密 后台肯定有对应的验证
找到规则就很简单了

有疑问可以留言 可以一起研究

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值