私はここでいくつかの例を読みましたが、私は非常に初心者なので、理解できないものもあれば、うまくいかないように見えるものもあります (おそらく、私はそのような初心者ですが...
import urllib.request
import re
Symbols = ['aapl', 'spy' , 'goog' , 'nflx']
i = 0
while i < len(Symbols):
Yahoo='http://finance.yahoo.com/q?s=' + Symbols[i]
htmlfile = urllib.request.urlopen(Yahoo)
htmltext = htmlfile.read()
string = Symbols[i]
symbol = string.encode('utf-8')
pattern= re.compile(b'<span id="yfs_l84_'+ symbol +'">(.+?)</span>')
price= re.findall(pattern, htmltext)
print('The price of' + str(Symbols[i]) + ' is ' + str(price))
i+=1
re.compile
ステートメントで str と bytes を連結しようとしているため、これは機能しません。
文字列をバイトに変換して、後でシンボルのリストを反復処理し、Yahoo Finance から最新の株価を取得できるようにする必要があります。
構文に何か問題があるような気がします。例と python のドキュメントには、「utf-8」文字列だと思われる「encoding」の引数がありますが、よくわかりません。
誰かがこれで私を助けることができますか?
編集: ここでは Bytes を使用しています。それが機能する唯一の方法であるためです。そうしないと、Bytes に変更するとエラーが発生します (私は 3.3 を使用しています)。
エラーは次のとおりです。
Traceback (most recent call last):
File "C:\Users\Deaven And Teigan\Documents\Python Projects\YahooFinance.py", line 14, in <module>
pattern= re.compile(b'<span id="yfs_l84_'+ symbol +'">(.+?)</span>')
TypeError: can't concat bytes to str