diff --git a/Lib/html/parser.py b/Lib/html/parser.py
--- a/Lib/html/parser.py
+++ b/Lib/html/parser.py
@@ -172,6 +172,7 @@
rawdata = self.rawdata
i = 0
n = len(rawdata)
+ rawdata_startswith = rawdata.startswith
while i < n:
match = self.interesting.search(rawdata, i) # < or &
if match:
@@ -183,17 +184,16 @@
if i < j: self.handle_data(rawdata[i:j])
i = self.updatepos(i, j)
if i == n: break
- startswith = rawdata.startswith
- if startswith('<', i):
+ if rawdata_startswith('<', i):
if starttagopen.match(rawdata, i): # < + letter
k = self.parse_starttag(i)
- elif startswith("", i):
+ elif rawdata_startswith("", i):
k = self.parse_endtag(i)
- elif startswith("