我从API下载数据但收到错误401: 我理解错误401,但不知道我的代码有什么问题。
import json
import requests
path='C:/Users/sharm_000/Desktop/Price Comparison/'
cat=str('https://affiliate-api.flipkart.net/affiliate/api/swapnilsh5.json')
r = requests.get(cat, auth=('swapnilsh5', '7018e1141bcd4ace9c3fe12277924035'))
print (r)
上面的代码返回201响应很好,但是当我进入下一级数据下载时,挑战就来了
link='https://affiliate-api.flipkart.net/affiliate/1.0/feeds/swapnilsh5/category/j9e-abm-c54.json?expiresAt=1479062969473&sig=1ef27c056140e0ff7cac143670584e9d&inStock=1'
r = requests.get(str(link), auth=('swapnilsh5', '7018e1141bcd4ace9c3fe12277924035'))
print(r)
这返回401错误,这个我无法弄清楚,当我使用curl运行上面的链接时
curl -H "Fk-Affiliate-Id:swapnilsh5" -H "Fk-Affiliate-Token:7018e1141bcd4ace9c3fe12277924035" "https://affiliate-api.flipkart.net/affiliate/1.0/feeds/swapnilsh5/category/j9e-abm-c54.json?expiresAt=1479062969473&sig=1ef27c056140e0ff7cac143670584e9d&inStock=1" -o "C:\Users\sharm_000\Desktop\Price Comparison\a1c.json"
curl命令工作正常。
请告诉我出错的地方以及在python中执行相同任务的其他方法。
先谢谢。
答案 0 :(得分:0)
您要连接的api端点使用非标准标头。因此,auth不适合您。您必须将它们作为自定义标题传递,就像使用curl时一样。
requests.get(str(link),
headers = { "Fk-Affiliate-Id" : 'swapnilsh5',
"Fk-Affiliate-Token": '7018e1141bcd4ace9c3fe12277924035'})