여기 예제의 일부를 읽고 그러나 나는 ... 나는 그 중 일부를 이해하지 않고 다른 사람이 작동하지 않는 것 (I는 초보자 해요 아마 있기 때문에 이러한 초보자입니다바이트를 문자열로 변환하거나 문자열을 바이트로 변환 하시겠습니까?
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
이 내가 STR 바이트를 연결하는 애 쓰고 re.compile
문으로 인해 작동하지 않습니다.
을 나중에 기호 목록을 반복하고 최신 주가를 긁어 수 있도록 내가 바이트 문자열로 변환해야
거기에 내 문법에 문제가 있다는 느낌이 들었습니다. d 예제와 파이썬 문서에는 '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
왜 정규식을 바이트 문자열로 만드나요? 또한 질문과 함께 스택 추적 및 예외를 게시하십시오. –
@Lattyware, TypeError : 바이트와 같은 객체에 문자열 패턴을 사용할 수 없습니다. –