我看過一些的例子在這裏,但我這樣一個新手,我不明白他們中的一些和其他人似乎不工作(可能是因爲我是個新手,但...字節到字符串或字符串到字節?
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
聲明我試圖來連接海峽和字節我需要將字符串轉換爲字節,這樣我以後可以遍歷符號列表和刮最新股價工作。
來自雅虎財經
我有一種感覺,我的語法出現了問題d例子和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
你爲什麼要用字節串來創建正則表達式?另外,請發佈堆棧跟蹤和異常與您的問題。 – 2013-05-12 18:25:09
@Lattyware,TypeError:不能在類似字節的對象上使用字符串模式 – 2013-05-12 18:33:23