In [1]:
import pycurl

sourceList = []
curlObj = pycurl.Curl()
curlObj.setopt(pycurl.URL, "http://www.pythonchallenge.com/pc/def/equality.html")
curlObj.setopt(pycurl.WRITEFUNCTION, lambda x: sourceList.append(x.decode(encoding="UTF-8")))
curlObj.perform()

In [2]:
import functools, operator

sourceCode = functools.reduce(operator.concat, sourceList)

In [3]:
import re

matches = re.findall("<!--(.*?)-->", sourceCode, re.DOTALL)

In [7]:
len(matches)


Out[7]:
1

In [4]:
searchSpace = matches[0].translate({ord("\n"):None})

In [23]:
soln = [x.group(1) for x in re.finditer("[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]", searchSpace)]

In [24]:
soln


Out[24]:
['l', 'i', 'n', 'k', 'e', 'd', 'l', 'i', 's', 't']

In [8]:
soln2 = re.findall("[^A-Z][A-Z]{3}([a-z])[A-Z]{3}[^A-Z]", searchSpace)

In [9]:
soln2


Out[9]:
['l', 'i', 'n', 'k', 'e', 'd', 'l', 'i', 's', 't']

In [ ]: