如何使用 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)
我想编写一个 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)