我读过这里的一些例子,但我是一个新手,我不明白其中一些,有些似乎不起作用(可能是因为我是这样一个新手,但是。。。在
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。在
我需要将字符串转换为字节,以便以后可以迭代符号列表,并从YahooFinance获取最新股价。在
我觉得我的语法有问题,示例和python文档中有一个关于“encoding”的参数,我认为是“utf-8”字符串,但我不太清楚。在
有人能帮我吗?在
编辑:我在这里使用字节,因为这是它唯一的工作方式,如果我不这样做,我会得到一个错误将其更改为字节(我使用的是3.3)。在
错误是:
^{pr2}$
字符串=字节(符号[i],'Utf-8')
您应该使用字符串,直到您真正想要发出网络请求为止,而不是在代码中混合使用字符串和字节。一般来说,字符串是字符的抽象表示,而字节则是将字符串编码成可通过网络发送的字节序列的特定编码(例如Utf-8)。在
也许你想为这行使用一个原始字符串:
而是使用
^{2}$相关问题 更多 >
编程相关推荐