网页抓取,从URL地址获取CSV文件

时间:2018-11-29 22:59:41

标签: python-3.x url request export-to-csv

我有一个愚蠢的问题。当我将其复制到浏览器时,我有一个立即生成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:错误的请求

您知道原因并且可以帮助您吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

编辑我应该声明您的链接对我不起作用,并且我的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()

答案 1 :(得分:0)

该链接对我不起作用。像这样尝试(通用示例)。

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)