此代码获取的数据未格式化为正确的csv格式。
import requests
import csv
def Download_data():
s = requests.Session()
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'}
s.headers.update(headers)
resp = s.get('https://www.nseindia.com/market-data/live-equity-market')
resp.raise_for_status()
resp = s.get('https://www.nseindia.com/api/equity-stockIndices?csv=true&index=NIFTY%2050')
resp.raise_for_status()
data_79 = resp.text
data_79 = resp.text.replace('","', '')
with open('___N50__.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows([line.split(',') for line in data_79.splitlines()])
if __name__ == "__main__":
Download_Fresh_data2()
标题都在行中而不是一列中。
经过大量的学习,我试图达到这个代码,但从我的Angular 来看,它仍然是不够的知识。请帮帮忙!
3条答案
按热度按时间63lcw9qa1#
一种可能性是跳过标题行并显式添加它们:
o4tp2gmn2#
你用文本编辑器看过数据了吗?
resp.text
似乎以一个BOM开始,标题的每个字段都以一个换行符结束。IMHO数据需要一些清理:rseugnpd3#
如果你访问的url有一个有效的CSV文件,那么你可以直接将csv读取到pandas dataframe中,然后保存到本地机器,如下所示: