私はyahooファイナンスから財務情報を取得するデジットトレーディングアプリを開発しています。コードは以下の通りです。PythonのURLがファイルをダウンロードしない
from datetime import datetime
from calendar import timegm
import time
def constructYFURL(ticker, start_date,end_date,freq):
start_date = str(timegm(time.strptime(start_date, "%Y-%m-%d")))
end_date = str(timegm(time.strptime(end_date, "%Y-%m-%d")))
if freq == 'w':
interval = '1wk'
else:
interval = '1mo'
if freq == 'd':
interval = '1d'
yFURL = "https://query1.finance.yahoo.com/v7/finance/download/"+ticker+"? period1="+start_date+"&period2="+end_date+"&interval="+interval+"&events=history&crumb=jfsRogYbS3."
return yFURL
def download(filePath, urlOfFile):
import urllib2
webRequest = urllib2.Request(urlOfFile)
try:
page = urllib2.urlopen(webRequest)
content = page.read()
with open(filePath, 'wb') as output:
output.write(bytearray(content))
except urllib2.HTTPError, e:
print e.fp.read()
私は株式相場を希望するティッカーと期間を選択してコードをテストします。
from download import constructYFURL, download
from datetime import datetime
from time import time
ticker = "NFLX"
start_date = "2016-07-18"
end_date = "2017-08-18"
freq = "d"
yFURL = constructYFURL(ticker, start_date,end_date,freq)
print yFURL
localFilePath = "/Users/Gebruiker/pytest/nflx.csv"
download(localFilePath,yFURL)
これは結果のURLです:
エラーは以下の通りである:それは私のブラウザを使用してリンクをクリックしたときただし、ファイルをダウンロードし
{
"finance": {
"error": {
"code": "Unauthorized",
"description": "Invalid cookie"
}
}
}
Process finished with exit code 0
、私はまだエラーを与えると私はそれが保存されるために指定されたリポジトリ内のCSVファイルを見つけることができません。誰でも私を助けることができますか?私はこれを修正することができますクッキーを処理するurllib2のpythonライブラリからのハンドラを使用することで推測するが、私はどのようにわからない。
まず、字下げを修正してください。 –
'' 'requests'''ライブラリを試してみるのはずっと簡単です。それは、あなたが認証トークンを持っていないようです。あなたのヘッダーにそれを渡すのは間違いありませんか? –