我有一个抓取数据任务,在使用 Firefox F12 (DevTools) 检查 URL 后,我发现该站点需要一个 JSON 数组输入,如下所示:
phyIDs:数组 0:“FDER047ERDF”
并以 JSON 格式返回一些数据:
trueIDs:数组 0:“802.112.1”
我需要的只是“trueID”,所以我使用 Python 3.6.1 和 Requests 来完成这项工作,这里是部分代码:
import json
import requests
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0',
'Cookie': 'JSFDKF.......',
'Content-Type': 'application/json;charset=UTF-8'}
data = {'phyIDs': json.dumps([{0: 'FDER047ERDF'}])}
resp = requests.post(url, headers=headers, verify=False,
data=data)
print(resp.text)
但是打印的响应文本是一个类似于 html 的消息,表示发生了一些错误,并且 status_code 是500,但是,如果我在标题中注释 'Content-Type' 部分,并使用普通dict而不是 JSON 作为输入数据,那么什么都没有返回并且 status_code 更改为415,现在我不知道该怎么办,希望有人能帮助我,非常感谢!
............
谢谢各位,我已经解决了这个问题。问题是我不应该在 JSON 数组中添加“0”!