做爬虫时候遇到了一个异常 很奇怪 就记录下
完整异常
{"timestamp":"2019-11-17T08:02:07.931+0000","status":400,"error":"Bad Request","message":"JSON parse error: Unrecognized token 'telephone': was expecting 'null', 'true', 'false' or NaN; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'telephone': was expecting 'null', 'true', 'false' or NaN\n at [Source: (PushbackInputStream); line: 1, column: 11]","path":"/worker/login"}
我的代码
loginUrl = 'https://sso.verycleaner.com/worker/login'
headers = {
'token':'',
'versionCode':'72',
'version':'3.0.4',
'loginSource':'WORKER',
'from':'android',
'Content-Type':'application/json; charset=utf-8',
# 'Content-Length':'73',
'Host':'sso.verycleaner.com',
'Connection':'Keep-Alive',
'User-Agent':'Mozilla/5.0 (Linux; U; Android 8.1.0; zh-cn; BLA-AL00 Build/HUAWEIBLA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/8.9 Mobile Safari/537.36'
}
data = {
'telephone': '1881751****',
'password': '31FEF9****'
}
res = requests.post(loginUrl, headers=headers, data=data,verify=False)
# res = requests.post(loginUrl, headers=headers, data=json.dumps(data),verify=False)
print(res.text)
这是爬取的一个app chars抓包显示是一个 post请求于是就直接携带需要的参数发起请求,结果就出现了上边的错误
res = requests.post(loginUrl, headers=headers, data=data,verify=False)
正确是要使用 post payload请求
res = requests.post(loginUrl, headers=headers, data=json.dumps(data),verify=False)