Web-Scraping, получить CSV-файл с URL-адресом - PullRequest
0 голосов
/ 30 ноября 2018

У меня глупая проблема.У меня есть адрес, который генерирует CSV-файл сразу же, когда я копирую его в браузер.Но мне нужно сделать это с помощью кода Python, поэтому я попытался сделать что-то подобное:

import urllib.request
url = 'https://www.quandl.com/api/v3/datasets/WSE/TSGAMES.csv?column_index=4&start_date=2018-01-01&end_date=2018-12-31&collapse=monthly&transform=rdiff&api_key=AZ964MpikzEYAyLGfJD2Y
csv = urllib.request.urlopen(url).read() 
with open('file.csv', 'wb') as fx: # bytes, hence mode 'wb'
    fx.write(csv)

Но я получил ошибку: поднять HTTPError (req.full_url, code, msg, hdrs, fp)

HTTPError: Bad Request

Вы знаете причину и могли бы помочь?

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Эта ссылка не работает для меня.Попробуйте вот так (общий пример).

from urllib.request import urlopen
from io import StringIO
import csv
data = urlopen("http://pythonscraping.com/files/MontyPythonAlbums.csv").read().decode('ascii', 'ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
with open('C:/Users/Excel/Desktop/example.csv', 'w') as myFile:  
   writer = csv.writer(myFile)
   writer.writerows(csvReader)
0 голосов
/ 30 ноября 2018

Редактировать Я должен заявить, что ваша ссылка не работает для меня, и мой quandl API отличается от вашего.

Это довольно легко сделать с модулем запросов:

import requests


filename = 'test_file.csv'
link = 'your link here'
data = requests.get(link)  # request the link, response 200 = success


with open(filename, 'wb') as f:
    f.write(data.content)  # write content of request to file
f.close()
...