GetAPI请求在POSTMAN中工作,但在python代码中不工作,我想将响应作为csv下载

2024-04-19 16:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

上面的url是get请求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))

Tags: tocomnoneurldaterequestwwwconnection
2条回答

更新代码

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")

请在下面找到代码的工作版本。您需要将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()

相关问题 更多 >