Aditya Taide
Aditya Taide

Reputation: 57

How to download csv file and zip file in python?

I have been trying to download the csv and zip file from the given links:

** https://nseindia.com/content/fo/fo.zip ** https://nseindia.com/archives/nsccl/sett/FOSett_prce_17052019.csv

The following code gives an error as HTTP Error 403: Forbidden

import urllib.request

csv_url = 'https://nseindia.com/archives/nsccl/sett/FOSett_prce_17052019.csv'

urllib.request.urlretrieve(csv_url, '17_05.csv')

Upvotes: 1

Views: 377

Answers (3)

vighnesh153
vighnesh153

Reputation: 5388

Install the package requests.

pip install requests

Then, use requests.get api to download the file and then write it to the desired file.

import requests

csv_url = 'https://nseindia.com/archives/nsccl/sett/FOSett_prce_17052019.csv'

r = requests.get(csv_url, allow_redirects=True)

open('test.csv', 'wb').write(r.content)

Upvotes: 0

Govind Sharma
Govind Sharma

Reputation: 69

Here you can get the content of the CSV file and you can write the CSV file.

import csv
import requests

CSV_URL = 'https://nseindia.com/archives/nsccl/sett/FOSett_prce_17052019.csv'


with requests.Session() as s:
    download = s.get(CSV_URL)

    decoded_content = download.content.decode('utf-8')

    cr = csv.reader(decoded_content.splitlines(), delimiter=',')
    my_list = list(cr)
    for row in my_list:
        print(row)

Upvotes: 0

Philip Tzou
Philip Tzou

Reputation: 6438

The problem of yours is because the default User-Agent (Python-urllib/3.7) of Python-urllib is blocked by the website server. However, you can bypass the blockage by changing the User-Agent header:

import urllib.request
opener = urllib.request.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
urllib.request.install_opener(opener)

csv_url = 'https://nseindia.com/archives/nsccl/sett/FOSett_prce_17052019.csv'
urllib.request.urlretrieve(csv_url, '17_05.csv')

Upvotes: 1

Related Questions