分析网址--------------------------------提示 抓取对方信息是通过对方允许的 请不要违法操作 抓取其他个人有关信息
网址先发送了一个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里面找到了这个加密的算法
就是这种 自己一个一个里面去找一下
找到后进行分析后则明白对方是如何进行加密的了
加密前端有加密 后台肯定有对应的验证
找到规则就很简单了
有疑问可以留言 可以一起研究