如何使用 Python 或 Curl 下载此数据?

How can I download this data using Python or Curl?

我想编写一个 Python 小程序,每天自动从纽约证券交易所下载股票代码列表。

我发现将我的浏览器指向这里可以获取 CSV 格式的数据:http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NYSE&render=download

但是如何通过 curl 从 bash shell 获取这些数据?执行以下操作无效:

% curl http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NYSE&render=download

我真的需要找到一种方法将这些数据放入我的 python 程序中。如果我可以使用 bash shell 的 curl 来完成它,那么我可以轻松地将它转换为 PyCurl。但是怎么做呢?有没有比 PyCurl 更好的方法?

使用 requests 库可以做到这一点。

pip3 install requests

这是一个例子。

import requests

def download(file_url, output_path):
    r = requests.get(file_url)
    with open(output_path, 'wb') as fd:
        for chunk in r.iter_content(chunk_size=10*1024*1024):
            fd.write(chunk)

download("http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NYSE&render=download", "stock_symbols.csv")

您可以使用 urllib 和 csv 模块,如下所示。

import csv
import urllib

url = 'http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NYSE&render=download'

resp = urllib.urlopen(url)
cr = csv.reader(resp.read().decode('utf-8'))
for row in cr:
        print(row)