python - urllib.error.HTTPError: HTTP Error 401: Unauthorized

python - urllib.error.HTTPError: HTTP Error 401: Unauthorized

我是 python 新手,刚刚尝试从外部文件写入数据。我不知道我哪里出错了。谁能帮我解决这个问题。 提前致谢。

from urllib import request

url = r'https://query1.finance.yahoo.com/v7/finance/download/AMD?period1=1497317134&period2=1499909134&interval=1d&events=history&crumb=HwDtuBHqtg0'

def download_csv(csv_url):

    csv = request.urlopen(csv_url)
    csv_data = csv.read
    csv_str = str(csv_data)
    file = csv_str.split('\n')
    dest_url = r'appl.csv'
    wr = open(dest_url, 'w')
    for data in file:
        wr.write(data + '\n')
    wr.close()

download_csv(url)

所以我 运行 在浏览器中 URL,它清楚地表明你的 API 需要一个 cookie。

所以你必须提供一个合适的 header,通常你可以使用 urllib 来管理会话,但老实说我会选择一个更 user-friendly 的库,比如 requests python 库(人类 HTTP)

示例:

s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get('http://httpbin.org/cookies')

print(r.text)
# '{"cookies": {"sessioncookie": "123456789"}}'

更多:http://docs.python-requests.org/en/master/user/advanced/#session-objects