我已经阅读了这里的一些示例,但我是一个新手,我不明白其中一些,而其他一些似乎不起作用(可能是因为我是一个新手,但是......
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”字符串,但我真的不知道。
有人可以帮我弄这个吗?
编辑:我在这里使用字节,因为这是它工作的唯一方式,如果我不这样做,我会收到一个错误,将其更改为字节(我使用的是 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