繁体   English   中英

GET api 请求在 POSTMAN 中有效,但在 python 代码中无效,我想将响应下载为 Z628CB5675FF524F3FEE7AAE91

[英]GET api request is working in POSTMAN but not in python code , I want to download the response as csv

https://www.nseindia.com/api/corporates-pit?index=equities&from_date=21-04-2020&to_date=21-07-2020&csv=true

以上 url 是获取请求 Url,我的 python 代码如下

import requests

url = "https://www.nseindia.com/api/corporates-pit?index=equities&from_date=21-04-2020&to_date=21-07-2020&csv=true"

payload = {}
headers= {}

response = requests.request("GET", url, headers=headers, data = payload)

print(response.text.encode('utf8'))

我也试过 http.client

import http.client
import mimetypes
conn = http.client.HTTPSConnection("www.nseindia.com")
payload = ''
headers = {}
conn.request("GET", "/api/corporates-pit?index=equities&from_date=21-04-2020&to_date=21-07-2020&csv=true", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

错误/秒

urllib3.exceptions.ProtocolError: ('Connection aborted.', TimeoutError(10060, 'A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond', None, 10060, None))
During handling of the above exception, another exception occurred:

raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', TimeoutError(10060, 'A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond', None, 10060, None))

请在下面找到您的代码的工作版本。 您需要将agentcookies变量传递给requests

import requests

csv_url = "https://www.nseindia.com/api/corporates-pit?index=equities&from_date=21-04-2020&to_date=21-07-2020&csv=true"

agent = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
cookies = {"cookie":"COPY_HERE_YOUR_COOKIE_FROM_BROWSER"}

req = requests.get(csv_url,headers=agent, cookies=cookies)
url_content = req.content

csv_file = open('downloaded.csv', 'wb')
csv_file.write(url_content)
csv_file.close()

更新代码

import requests

session = requests.Session()
print(session.cookies.get_dict())

response = session.get('http://google.com')
print(session.cookies.get_dict())

from_date = '21-04-2020'
to_date = '21-07-2020'

csv_url = "https://www.nseindia.com/api/corporates-pit?index=equities&from_date="+from_date+"&to_date="+to_date+"&csv=true"

agent = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}
#cookies = {"cookie":"COPY_HERE_YOUR_COOKIE_FROM_BROWSER"}

req = session.get(csv_url,headers=agent)
url_content = req.content

csv_file = open('downloaded.csv', 'wb')
csv_file.write(url_content)
csv_file.close()

print("Done")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM