python - Python请求获取nse印度网站的返回响应代码401
问题描述
我使用这个程序从中获取 json 数据,https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY
但是从今天早上开始它在返回时无法正常工作<Response [401]>
。不过,该链接在 chrome 上加载良好。有没有办法在不使用 selenium 的情况下解决这个问题?
import json
import requests
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, '
'like Gecko) '
'Chrome/80.0.3987.149 Safari/537.36',
'accept-language': 'en,gu;q=0.9,hi;q=0.8', 'accept-encoding': 'gzip, deflate, br'}
res = requests.get("https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY", headers=headers)
print(res)
解决方案
尝试这个:
import requests
baseurl = "https://www.nseindia.com/"
url = f"https://www.nseindia.com/api/option-chain-indices?symbol=NIFTY"
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, '
'like Gecko) '
'Chrome/80.0.3987.149 Safari/537.36',
'accept-language': 'en,gu;q=0.9,hi;q=0.8', 'accept-encoding': 'gzip, deflate, br'}
session = requests.Session()
request = session.get(baseurl, headers=headers, timeout=5)
cookies = dict(request.cookies)
response = session.get(url, headers=headers, timeout=5, cookies=cookies)
print(response.json())
要多次访问 NSE (api's) 站点,然后cookies
在每个后续请求中设置:
response = session.get(url, headers=headers, timeout=5, cookies=cookies)
推荐阅读
- sql - 我只需要找到每个城市收入最高的员工
- html - css动画空白:nowrap;
- sql - 从 XML 列中获取所有值
- javascript - 如何将 MySQL 查询数据传递给 JavaScript 变量?
- c# - 声明静态和非静态变量
- java - 结果集 rs.next() 的 rs 变量如何为真,即使它们在第二个表 b 中没有记录
- c++ - c++ getSize() 方法返回奇怪的值
- jquery - 使用 $.width() 调整元素的大小变得更大而不是更窄
- python - ValueError:遇到意外的 $end - RPLY Parsing
- c# - 如何在同一个数组中返回不同的数据类型?