为什么request.get()在python中给我一个错误?

时间:2019-12-07 21:46:03

标签: python python-requests

import requests
url="https://beta.nseindia.com/api/option-chain-indices?symbol=NIFTY"
requests.get(url)

我正在使用请求,但它给我超时错误..但是当我在浏览器中打开相同的链接时,其工作正常

2 个答案:

答案 0 :(得分:2)

尝试使用一些用户代理字符串标题:

import requests
url="https://beta.nseindia.com/api/option-chain-indices?symbol=NIFTY"
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, headers=headers)


>>> response
<Response [200]>
>>>

beta.nseindia.com/的策略可以阻止来自漫游器的请求。

答案 1 :(得分:2)

如果您一直向上滚动浏览错误,则会看到 InsecureRequestWarning ,这表示您正在进行未经验证的HTTPS请求。可以按照this指南解决。

首先,您需要安装一些软件包来处理证书:

pip install certifi pip urllib3[secure]

然后,在您的代码中创建一个 PoolManager ,在发出请求时验证证书:

import requests
import certifi
import urllib3

http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())
url = 'https://beta.nseindia.com/api/option-chain-indices?symbol=NIFTY'

http.request('GET', url, verify=False)

取决于您使用的是哪个版本的python,